Class: Faker::Date
Constant Summary
Constants inherited from Base
Base::LLetters, Base::Letters, Base::NOT_GIVEN, Base::Numbers, Base::ULetters
Class Method Summary collapse
-
.backward(legacy_days = NOT_GIVEN, days: 365) ⇒ Date
Produce a random date in the past (up to N days).
-
.between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from:, to:) ⇒ Date
Produce a random date between two dates.
-
.between_except(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_excepted = NOT_GIVEN, from:, to:, excepted:) ⇒ Date
Produce a random date between two dates.
-
.birthday(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65) ⇒ Date
Produce a random date in the past (up to N days).
-
.forward(legacy_days = NOT_GIVEN, days: 365) ⇒ Date
Produce a random date in the future (up to N days).
-
.in_date_period(month: nil, year: ::Date.today.year) ⇒ Date
Produces a date in the year and/or month specified.
Methods inherited from Base
bothify, disable_enforce_available_locales, fetch, fetch_all, flexible, letterify, method_missing, numerify, parse, rand, rand_in_range, regexify, resolve, respond_to_missing?, sample, shuffle, translate, unique, with_locale
Class Method Details
.backward(legacy_days = NOT_GIVEN, days: 365) ⇒ Date
Produce a random date in the past (up to N days).
98 99 100 101 102 103 104 105 106 107 |
# File 'lib/faker/default/date.rb', line 98 def backward(legacy_days = NOT_GIVEN, days: 365) warn_for_deprecated_arguments do |keywords| keywords << :days if legacy_days != NOT_GIVEN end from = ::Date.today - days to = ::Date.today - 1 between(from: from, to: to).to_date end |
.between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from:, to:) ⇒ Date
Produce a random date between two dates.
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/faker/default/date.rb', line 18 def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from:, to:) warn_for_deprecated_arguments do |keywords| keywords << :from if legacy_from != NOT_GIVEN keywords << :to if legacy_to != NOT_GIVEN end from = get_date_object(from) to = get_date_object(to) Faker::Base.rand_in_range(from, to) end |
.between_except(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_excepted = NOT_GIVEN, from:, to:, excepted:) ⇒ Date
Produce a random date between two dates.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/faker/default/date.rb', line 45 def between_except(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_excepted = NOT_GIVEN, from:, to:, excepted:) warn_for_deprecated_arguments do |keywords| keywords << :from if legacy_from != NOT_GIVEN end warn_for_deprecated_arguments do |keywords| keywords << :to if legacy_to != NOT_GIVEN end warn_for_deprecated_arguments do |keywords| keywords << :excepted if legacy_excepted != NOT_GIVEN end raise ArgumentError, 'From date, to date and excepted date must not be the same' if from == to && to == excepted excepted = get_date_object(excepted) loop do date = between(from: from, to: to) break date.to_date if date != excepted end end |
.birthday(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65) ⇒ Date
Produce a random date in the past (up to N days).
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/faker/default/date.rb', line 120 def birthday(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65) warn_for_deprecated_arguments do |keywords| keywords << :min_age if legacy_min_age != NOT_GIVEN end warn_for_deprecated_arguments do |keywords| keywords << :max_age if legacy_max_age != NOT_GIVEN end t = ::Date.today from = birthday_date(t, max_age) to = birthday_date(t, min_age) between(from: from, to: to).to_date end |
.forward(legacy_days = NOT_GIVEN, days: 365) ⇒ Date
Produce a random date in the future (up to N days).
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/faker/default/date.rb', line 77 def forward(legacy_days = NOT_GIVEN, days: 365) warn_for_deprecated_arguments do |keywords| keywords << :days if legacy_days != NOT_GIVEN end from = ::Date.today + 1 to = ::Date.today + days between(from: from, to: to).to_date end |
.in_date_period(month: nil, year: ::Date.today.year) ⇒ Date
Produces a date in the year and/or month specified.
153 154 155 156 157 158 |
# File 'lib/faker/default/date.rb', line 153 def in_date_period(month: nil, year: ::Date.today.year) from = ::Date.new(year, month || 1, 1) to = ::Date.new(year, month || 12, ::Date.civil(year, month || 12, -1).day) between(from: from, to: to).to_date end |