-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add Faker::Time.between_dates, remove period from between This is an API breaking change. Before this change, issues such as #1280 existed due to some confusion about the behavior of Faker::Time.between. In essence, between could produce values outside of the range of (from..to) if the range is smaller than the provided period. After this change, between now behaves more like Faker::Date.between and as such the period argument has been removed. For the old behavior, a user should switch to calling between_dates, which has the same method signature as the old between method. The :between period is no longer valid. Documentation still needs to be updated, and additional tests need to be written. * Remove inheritance of Faker::Date by Faker::Time This is an API breaking change. Before this change, Faker::Time re-used some behavior of Faker::Date by first inheriting from Date, then using `super`. This relationship was one of convenience, though, and created some odd behavior for Time. For example, calling Faker::Time.birthday was possible, as birthday is defined in Faker::Date, but it would unintuitively return a Date object. Now, Faker::Time explicitly calls out to Faker::Date methods everywhere necessary, and the inheritance relationship has been removed. This does remove Faker::Time::birthday, and Faker::Time::between_except from the interface - but as these methods both return Date objects and are not documented in Faker::Time docs, they were never indicated for direct use anyway. * Improve Faker::Time.between tests for v2 behavior Adds a new test to prevent regression of #1280, and adds return type checking for new method between_dates. * Improve coverage of Faker::Time docs * Update docs * Add keyword args for Faker::Time * Delete time.md * Docs
- Loading branch information
1 parent
d4be786
commit 40ddc88
Showing
3 changed files
with
66 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,35 @@ | ||
# Faker::Time | ||
|
||
```ruby | ||
# Random date between dates | ||
# Random Time between two times | ||
Faker::Time.between(from: DateTime.now - 1, to: DateTime.now) #=> "2014-09-18 12:30:59 -0700" | ||
|
||
# Random date between dates (within specified part of the day) | ||
# Random Stringified time between two times, formatted to the specified I18n format | ||
# (Examples are from a Rails console with rails-i18n 5.1.1 defaults loaded) | ||
I18n.locale = 'en-US' | ||
Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :default) #=> "Tue, 16 Oct 2018 10:48:27 AM -05:00" | ||
Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :short) #=> "15 Oct 10:48 AM" | ||
Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :long) #=> "October 15, 2018 10:48 AM" | ||
I18n.locale = 'ja' | ||
Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :default) #=> "2018/10/15 10:48:27" | ||
Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :short) #=> "18/10/15 10:48" | ||
Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :long) #=> "2018年10月16日(火) 10時48分27秒 -0500" | ||
# Random Time between two dates, within specified part of the day | ||
# You can install the as-duration gem to facilitate time manipulation like 45.minutes + 2.hours | ||
# (not needed if you already have activesupport, which is included with Rails) | ||
require 'as-duration' | ||
Faker::Time.between(from: 2.days.ago, to: Date.today, period: :all) #=> "2014-09-19 07:03:30 -0700" | ||
Faker::Time.between(from: 2.days.ago, to: Date.today, period: :day) #=> "2014-09-18 16:28:13 -0700" | ||
Faker::Time.between(from: 2.days.ago, to: Date.today, period: :night) #=> "2014-09-20 19:39:38 -0700" | ||
Faker::Time.between(from: 2.days.ago, to: Date.today, period: :morning) #=> "2014-09-19 08:07:52 -0700" | ||
Faker::Time.between(from: 2.days.ago, to: Date.today, period: :afternoon) #=> "2014-09-18 12:10:34 -0700" | ||
Faker::Time.between(from: 2.days.ago, to: Date.today, period: :evening) #=> "2014-09-19 20:21:03 -0700" | ||
Faker::Time.between(from: 2.days.ago, to: Date.today, period: :midnight) #=> "2014-09-20 00:40:14 -0700" | ||
|
||
# Random time in the future (up to maximum of N days) | ||
Faker::Time.between_dates(from: 2.days.ago, to: Date.today, period: :all) #=> "2014-09-19 07:03:30 -0700" | ||
Faker::Time.between_dates(from: 2.days.ago, to: Date.today, period: :day) #=> "2014-09-18 16:28:13 -0700" | ||
Faker::Time.between_dates(from: 2.days.ago, to: Date.today, period: :night) #=> "2014-09-20 19:39:38 -0700" | ||
Faker::Time.between_dates(from: 2.days.ago, to: Date.today, period: :morning) #=> "2014-09-19 08:07:52 -0700" | ||
Faker::Time.between_dates(from: 2.days.ago, to: Date.today, period: :afternoon) #=> "2014-09-18 12:10:34 -0700" | ||
Faker::Time.between_dates(from: 2.days.ago, to: Date.today, period: :evening) #=> "2014-09-19 20:21:03 -0700" | ||
Faker::Time.between_dates(from: 2.days.ago, to: Date.today, period: :midnight) #=> "2014-09-20 00:40:14 -0700" | ||
# Random Time in the future (up to maximum of N days) | ||
Faker::Time.forward(days: 23, period: :morning) # => "2014-09-26 06:54:47 -0700" | ||
|
||
# Random time in the past (up to maximum of N days) | ||
# Random Time in the past (up to maximum of N days) | ||
Faker::Time.backward(days: 14, period: :evening) #=> "2014-09-17 19:56:33 -0700" | ||
# Random Stringified time in the past, future, or between dates, formatted to the specified I18n format | ||
Faker::Time.backward(days: 5, period: :morning, format: :short) #=> "14 Oct 07:44" | ||
Faker::Time.forward(days: 5, period: :evening, format: :long) #=> "October 21, 2018 20:47" | ||
Faker::Time.between_dates(from: 5.days.ago, to: 5.days.from_now, period: :afternoon, format: :default) #=> "Fri, 19 Oct 2018 15:17:46 -0500" | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters