faker 2.1.2 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +171 -7
- data/README.md +4 -4
- data/lib/faker.rb +56 -1
- data/lib/faker/blockchain/aeternity.rb +70 -0
- data/lib/faker/blockchain/bitcoin.rb +26 -0
- data/lib/faker/blockchain/ethereum.rb +10 -0
- data/lib/faker/blockchain/tezos.rb +62 -6
- data/lib/faker/books/book.rb +36 -0
- data/lib/faker/books/culture_series.rb +49 -0
- data/lib/faker/books/dune.rb +66 -5
- data/lib/faker/books/lovecraft.rb +210 -7
- data/lib/faker/creature/animal.rb +9 -0
- data/lib/faker/creature/cat.rb +27 -0
- data/lib/faker/creature/dog.rb +72 -0
- data/lib/faker/creature/horse.rb +18 -0
- data/lib/faker/default/address.rb +25 -5
- data/lib/faker/default/alphanumeric.rb +56 -7
- data/lib/faker/default/app.rb +55 -1
- data/lib/faker/default/appliance.rb +18 -0
- data/lib/faker/default/artist.rb +9 -0
- data/lib/faker/default/avatar.rb +43 -1
- data/lib/faker/default/bank.rb +10 -2
- data/lib/faker/default/boolean.rb +16 -1
- data/lib/faker/default/chile_rut.rb +12 -2
- data/lib/faker/default/chuck_norris.rb +1 -1
- data/lib/faker/default/code.rb +16 -3
- data/lib/faker/default/commerce.rb +17 -3
- data/lib/faker/default/company.rb +10 -2
- data/lib/faker/default/crypto_coin.rb +15 -3
- data/lib/faker/default/date.rb +118 -5
- data/lib/faker/default/demographic.rb +5 -1
- data/lib/faker/default/dessert.rb +27 -0
- data/lib/faker/default/device.rb +54 -0
- data/lib/faker/default/driving_licence.rb +12 -6
- data/lib/faker/default/electrical_components.rb +27 -0
- data/lib/faker/default/file.rb +19 -2
- data/lib/faker/default/fillmurray.rb +9 -1
- data/lib/faker/default/finance.rb +5 -1
- data/lib/faker/default/gender.rb +18 -0
- data/lib/faker/default/greek_philosophers.rb +18 -0
- data/lib/faker/default/hacker.rb +59 -1
- data/lib/faker/default/hipster.rb +45 -6
- data/lib/faker/default/house.rb +18 -0
- data/lib/faker/default/id_number.rb +11 -3
- data/lib/faker/default/industry_segments.rb +36 -0
- data/lib/faker/default/internet.rb +97 -13
- data/lib/faker/default/invoice.rb +16 -3
- data/lib/faker/default/json.rb +19 -2
- data/lib/faker/default/lorem.rb +81 -10
- data/lib/faker/default/lorem_flickr.rb +38 -5
- data/lib/faker/default/lorem_pixel.rb +10 -1
- data/lib/faker/default/markdown.rb +6 -1
- data/lib/faker/default/marketing.rb +9 -0
- data/lib/faker/default/measurement.rb +40 -8
- data/lib/faker/default/military.rb +45 -0
- data/lib/faker/default/name.rb +5 -1
- data/lib/faker/default/nation.rb +48 -5
- data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
- data/lib/faker/default/nhs.rb +5 -1
- data/lib/faker/default/number.rb +180 -11
- data/lib/faker/default/omniauth.rb +92 -9
- data/lib/faker/default/phone_number.rb +5 -1
- data/lib/faker/default/placeholdit.rb +11 -1
- data/lib/faker/default/programming_language.rb +18 -0
- data/lib/faker/default/relationship.rb +5 -1
- data/lib/faker/default/restaurant.rb +54 -2
- data/lib/faker/default/science.rb +27 -0
- data/lib/faker/default/source.rb +59 -3
- data/lib/faker/default/string.rb +5 -1
- data/lib/faker/default/stripe.rb +20 -4
- data/lib/faker/default/subscription.rb +45 -0
- data/lib/faker/default/superhero.rb +45 -0
- data/lib/faker/default/time.rb +114 -4
- data/lib/faker/default/twitter.rb +32 -18
- data/lib/faker/default/types.rb +27 -5
- data/lib/faker/default/vehicle.rb +17 -4
- data/lib/faker/default/world_cup.rb +61 -2
- data/lib/faker/games/dota.rb +52 -1
- data/lib/faker/games/elder_scrolls.rb +72 -0
- data/lib/faker/games/fallout.rb +37 -0
- data/lib/faker/games/game.rb +27 -0
- data/lib/faker/games/half_life.rb +27 -0
- data/lib/faker/games/heroes.rb +27 -0
- data/lib/faker/games/heroes_of_the_storm.rb +36 -0
- data/lib/faker/games/league_of_legends.rb +54 -0
- data/lib/faker/games/myst.rb +45 -0
- data/lib/faker/games/overwatch.rb +27 -0
- data/lib/faker/games/pokemon.rb +27 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
- data/lib/faker/games/super_smash_bros.rb +18 -0
- data/lib/faker/games/witcher.rb +54 -0
- data/lib/faker/games/world_of_warcraft.rb +18 -0
- data/lib/faker/games/zelda.rb +37 -1
- data/lib/faker/japanese_media/dragon_ball.rb +9 -0
- data/lib/faker/japanese_media/one_piece.rb +54 -0
- data/lib/faker/japanese_media/sword_art_online.rb +36 -0
- data/lib/faker/movies/back_to_the_future.rb +28 -0
- data/lib/faker/movies/ghostbusters.rb +28 -0
- data/lib/faker/movies/harry_potter.rb +54 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
- data/lib/faker/movies/hobbit.rb +37 -0
- data/lib/faker/movies/lebowski.rb +27 -0
- data/lib/faker/movies/lord_of_the_rings.rb +28 -0
- data/lib/faker/movies/movie.rb +9 -0
- data/lib/faker/movies/princess_bride.rb +19 -0
- data/lib/faker/movies/star_wars.rb +100 -4
- data/lib/faker/movies/v_for_vendetta.rb +29 -0
- data/lib/faker/music/grateful_dead.rb +18 -0
- data/lib/faker/music/phish.rb +9 -0
- data/lib/faker/music/rock_band.rb +9 -0
- data/lib/faker/music/umphreys_mcgee.rb +9 -0
- data/lib/faker/sports/basketball.rb +36 -0
- data/lib/faker/sports/football.rb +45 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +9 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
- data/lib/faker/tv_shows/breaking_bad.rb +18 -0
- data/lib/faker/tv_shows/buffy.rb +45 -0
- data/lib/faker/tv_shows/community.rb +19 -0
- data/lib/faker/tv_shows/dr_who.rb +78 -2
- data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
- data/lib/faker/tv_shows/family_guy.rb +28 -0
- data/lib/faker/tv_shows/friends.rb +27 -0
- data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
- data/lib/faker/tv_shows/hey_arnold.rb +27 -0
- data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
- data/lib/faker/tv_shows/michael_scott.rb +13 -0
- data/lib/faker/tv_shows/new_girl.rb +19 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
- data/lib/faker/tv_shows/ru_paul.rb +18 -0
- data/lib/faker/tv_shows/seinfeld.rb +28 -0
- data/lib/faker/tv_shows/silicon_valley.rb +75 -0
- data/lib/faker/tv_shows/simpsons.rb +28 -0
- data/lib/faker/tv_shows/south_park.rb +19 -0
- data/lib/faker/tv_shows/star_trek.rb +36 -0
- data/lib/faker/tv_shows/stargate.rb +28 -0
- data/lib/faker/tv_shows/stranger_things.rb +19 -0
- data/lib/faker/tv_shows/the_expanse.rb +36 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +28 -0
- data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
- data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
- data/lib/faker/tv_shows/twin_peaks.rb +28 -0
- data/lib/faker/tv_shows/venture_bros.rb +38 -0
- data/lib/faker/version.rb +1 -1
- data/lib/locales/en-CA.yml +1 -1
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en/color.yml +1 -1
- data/lib/locales/en/dr_who.yml +1 -1
- data/lib/locales/en/science.yml +1 -1
- data/lib/locales/ja.yml +8 -9
- data/lib/locales/th.yml +380 -0
- metadata +39 -14
data/lib/faker/default/avatar.rb
CHANGED
|
@@ -3,9 +3,51 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Avatar < Base
|
|
5
5
|
class << self
|
|
6
|
+
# @private
|
|
6
7
|
SUPPORTED_FORMATS = %w[png jpg bmp].freeze
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
# rubocop:disable Metrics/ParameterLists
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# Produces a URL for an avatar from robohash.org
|
|
13
|
+
#
|
|
14
|
+
# @param slug [String, nil]
|
|
15
|
+
# @param size [String] image size in pixels, in the format of 'AxB'
|
|
16
|
+
# @param format [String] The image file format
|
|
17
|
+
# @param set [String] The avatar set to use
|
|
18
|
+
# @param bgset [String, nil] The background set to use
|
|
19
|
+
# @return [String] A robohash.org URL
|
|
20
|
+
#
|
|
21
|
+
# @example
|
|
22
|
+
# Faker::Avatar.image
|
|
23
|
+
# #=> "https://robohash.org/sitsequiquia.png?size=300x300&set=set1"
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::Avatar.image(slug: "my-own-slug")
|
|
26
|
+
# #=> "https://robohash.org/my-own-slug.png?size=300x300&set=set1"
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::Avatar.image(slug: "my-own-slug", size: "50x50")
|
|
29
|
+
# #=> "https://robohash.org/my-own-slug.png?size=50x50&set=set1"
|
|
30
|
+
# @example
|
|
31
|
+
# Faker::Avatar.image(slug: "my-own-slug", size: "50x50", format: "jpg")
|
|
32
|
+
# #=> "https://robohash.org/my-own-slug.jpg?size=50x50&set=set1"
|
|
33
|
+
# @example
|
|
34
|
+
# Faker::Avatar.image(slug: "my-own-slug", size: "50x50", format: "bmp")
|
|
35
|
+
# #=> "https://robohash.org/my-own-slug.bmp?size=50x50&set=set1"
|
|
36
|
+
# @example
|
|
37
|
+
# Faker::Avatar.image(slug: "my-own-slug", size: "50x50", format: "bmp", set: "set1", bgset: "bg1")
|
|
38
|
+
# #=> "https://robohash.org/my-own-slug.bmp?size=50x50&set=set1&bgset=bg1"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version 1.4.3
|
|
41
|
+
def image(legacy_slug = NOT_GIVEN, legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_set = NOT_GIVEN, legacy_bgset = NOT_GIVEN, slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
|
|
42
|
+
# rubocop:enable Metrics/ParameterLists
|
|
43
|
+
warn_for_deprecated_arguments do |keywords|
|
|
44
|
+
keywords << :slug if legacy_slug != NOT_GIVEN
|
|
45
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
46
|
+
keywords << :format if legacy_format != NOT_GIVEN
|
|
47
|
+
keywords << :set if legacy_set != NOT_GIVEN
|
|
48
|
+
keywords << :bgset if legacy_bgset != NOT_GIVEN
|
|
49
|
+
end
|
|
50
|
+
|
|
9
51
|
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
|
10
52
|
raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)
|
|
11
53
|
|
data/lib/faker/default/bank.rb
CHANGED
|
@@ -5,7 +5,11 @@ module Faker
|
|
|
5
5
|
flexible :bank
|
|
6
6
|
|
|
7
7
|
class << self
|
|
8
|
-
def account_number(digits: 10)
|
|
8
|
+
def account_number(legacy_digits = NOT_GIVEN, digits: 10)
|
|
9
|
+
warn_for_deprecated_arguments do |keywords|
|
|
10
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
11
|
+
end
|
|
12
|
+
|
|
9
13
|
output = ''
|
|
10
14
|
|
|
11
15
|
output += rand.to_s[2..-1] while output.length < digits
|
|
@@ -13,10 +17,14 @@ module Faker
|
|
|
13
17
|
output[0...digits]
|
|
14
18
|
end
|
|
15
19
|
|
|
16
|
-
def iban(country_code: 'GB')
|
|
20
|
+
def iban(legacy_country_code = NOT_GIVEN, country_code: 'GB')
|
|
17
21
|
# Each country has it's own format for bank accounts
|
|
18
22
|
# Many of them use letters in certain parts of the account
|
|
19
23
|
# Using regex patterns we can create virtually any type of bank account
|
|
24
|
+
warn_for_deprecated_arguments do |keywords|
|
|
25
|
+
keywords << :country_code if legacy_country_code != NOT_GIVEN
|
|
26
|
+
end
|
|
27
|
+
|
|
20
28
|
begin
|
|
21
29
|
pattern = fetch("bank.iban_details.#{country_code.downcase}.bban_pattern")
|
|
22
30
|
rescue I18n::MissingTranslationData
|
|
@@ -3,7 +3,22 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Boolean < Base
|
|
5
5
|
class << self
|
|
6
|
-
|
|
6
|
+
##
|
|
7
|
+
# Produces a boolean
|
|
8
|
+
#
|
|
9
|
+
# @param true_ratio [Float] The likelihood (as a float, out of 1.0) for the method to return `true`.
|
|
10
|
+
# @return [Boolean]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Boolean.boolean #=> true
|
|
14
|
+
# @example
|
|
15
|
+
# Faker::Boolean.boolean(true_ratio: 0.2) #=> false
|
|
16
|
+
#
|
|
17
|
+
# @faker.version 1.6.2
|
|
18
|
+
def boolean(legacy_true_ratio = NOT_GIVEN, true_ratio: 0.5)
|
|
19
|
+
warn_for_deprecated_arguments do |keywords|
|
|
20
|
+
keywords << :true_ratio if legacy_true_ratio != NOT_GIVEN
|
|
21
|
+
end
|
|
7
22
|
(rand < true_ratio)
|
|
8
23
|
end
|
|
9
24
|
end
|
|
@@ -6,7 +6,12 @@ module Faker
|
|
|
6
6
|
@last_rut = nil
|
|
7
7
|
|
|
8
8
|
# Fixed param added for testing a specific RUT and check digit combination.
|
|
9
|
-
def rut(min_rut: 1, fixed: false)
|
|
9
|
+
def rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 1, fixed: false)
|
|
10
|
+
warn_for_deprecated_arguments do |keywords|
|
|
11
|
+
keywords << :min_rut if legacy_min_rut != NOT_GIVEN
|
|
12
|
+
keywords << :fixed if legacy_fixed != NOT_GIVEN
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
@last_rut = fixed ? min_rut : rand_in_range(min_rut, 99_999_999)
|
|
11
16
|
end
|
|
12
17
|
|
|
@@ -34,7 +39,12 @@ module Faker
|
|
|
34
39
|
dv
|
|
35
40
|
end
|
|
36
41
|
|
|
37
|
-
def full_rut(min_rut: 0, fixed: false)
|
|
42
|
+
def full_rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 0, fixed: false)
|
|
43
|
+
warn_for_deprecated_arguments do |keywords|
|
|
44
|
+
keywords << :min_rut if legacy_min_rut != NOT_GIVEN
|
|
45
|
+
keywords << :fixed if legacy_fixed != NOT_GIVEN
|
|
46
|
+
end
|
|
47
|
+
|
|
38
48
|
"#{rut(min_rut: min_rut, fixed: fixed)}-#{dv}"
|
|
39
49
|
end
|
|
40
50
|
|
data/lib/faker/default/code.rb
CHANGED
|
@@ -12,13 +12,21 @@ module Faker
|
|
|
12
12
|
|
|
13
13
|
# By default generates 10 sign isbn code in format 123456789-X
|
|
14
14
|
# You can pass 13 to generate new 13 sign code
|
|
15
|
-
def isbn(base: 10)
|
|
15
|
+
def isbn(legacy_base = NOT_GIVEN, base: 10)
|
|
16
|
+
warn_for_deprecated_arguments do |keywords|
|
|
17
|
+
keywords << :base if legacy_base != NOT_GIVEN
|
|
18
|
+
end
|
|
19
|
+
|
|
16
20
|
base == 13 ? generate_base13_isbn : generate_base10_isbn
|
|
17
21
|
end
|
|
18
22
|
|
|
19
23
|
# By default generates 13 sign ean code in format 1234567890123
|
|
20
24
|
# You can pass 8 to generate ean8 code
|
|
21
|
-
def ean(base: 13)
|
|
25
|
+
def ean(legacy_base = NOT_GIVEN, base: 13)
|
|
26
|
+
warn_for_deprecated_arguments do |keywords|
|
|
27
|
+
keywords << :base if legacy_base != NOT_GIVEN
|
|
28
|
+
end
|
|
29
|
+
|
|
22
30
|
base == 8 ? generate_base8_ean : generate_base13_ean
|
|
23
31
|
end
|
|
24
32
|
|
|
@@ -30,7 +38,12 @@ module Faker
|
|
|
30
38
|
|
|
31
39
|
# By default generates a Singaporean NRIC ID for someone
|
|
32
40
|
# who is born between the age of 18 and 65.
|
|
33
|
-
def nric(min_age: 18, max_age: 65)
|
|
41
|
+
def nric(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65)
|
|
42
|
+
warn_for_deprecated_arguments do |keywords|
|
|
43
|
+
keywords << :min_age if legacy_min_age != NOT_GIVEN
|
|
44
|
+
keywords << :max_age if legacy_max_age != NOT_GIVEN
|
|
45
|
+
end
|
|
46
|
+
|
|
34
47
|
birthyear = Date.birthday(min_age: min_age, max_age: max_age).year
|
|
35
48
|
prefix = birthyear < 2000 ? 'S' : 'T'
|
|
36
49
|
values = birthyear.to_s[-2..-1]
|
|
@@ -7,7 +7,11 @@ module Faker
|
|
|
7
7
|
fetch('color.name')
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
def promotion_code(digits: 6)
|
|
10
|
+
def promotion_code(legacy_digits = NOT_GIVEN, digits: 6)
|
|
11
|
+
warn_for_deprecated_arguments do |keywords|
|
|
12
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
13
|
+
end
|
|
14
|
+
|
|
11
15
|
[
|
|
12
16
|
fetch('commerce.promotion_code.adjective'),
|
|
13
17
|
fetch('commerce.promotion_code.noun'),
|
|
@@ -15,7 +19,12 @@ module Faker
|
|
|
15
19
|
].join
|
|
16
20
|
end
|
|
17
21
|
|
|
18
|
-
def department(max: 3, fixed_amount: false)
|
|
22
|
+
def department(legacy_max = NOT_GIVEN, legacy_fixed_amount = NOT_GIVEN, max: 3, fixed_amount: false)
|
|
23
|
+
warn_for_deprecated_arguments do |keywords|
|
|
24
|
+
keywords << :max if legacy_max != NOT_GIVEN
|
|
25
|
+
keywords << :fixed_amount if legacy_fixed_amount != NOT_GIVEN
|
|
26
|
+
end
|
|
27
|
+
|
|
19
28
|
num = max if fixed_amount
|
|
20
29
|
num ||= 1 + rand(max)
|
|
21
30
|
|
|
@@ -34,7 +43,12 @@ module Faker
|
|
|
34
43
|
fetch('commerce.product_name.material')
|
|
35
44
|
end
|
|
36
45
|
|
|
37
|
-
def price(range: 0..100.0, as_string: false)
|
|
46
|
+
def price(legacy_range = NOT_GIVEN, legacy_as_string = NOT_GIVEN, range: 0..100.0, as_string: false)
|
|
47
|
+
warn_for_deprecated_arguments do |keywords|
|
|
48
|
+
keywords << :range if legacy_range != NOT_GIVEN
|
|
49
|
+
keywords << :as_string if legacy_as_string != NOT_GIVEN
|
|
50
|
+
end
|
|
51
|
+
|
|
38
52
|
price = (rand(range) * 100).floor / 100.0
|
|
39
53
|
if as_string
|
|
40
54
|
price_parts = price.to_s.split('.')
|
|
@@ -126,7 +126,11 @@ module Faker
|
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
# Get a random Polish register of national economy number. More info https://pl.wikipedia.org/wiki/REGON
|
|
129
|
-
def polish_register_of_national_economy(length: 9)
|
|
129
|
+
def polish_register_of_national_economy(legacy_length = NOT_GIVEN, length: 9)
|
|
130
|
+
warn_for_deprecated_arguments do |keywords|
|
|
131
|
+
keywords << :length if legacy_length != NOT_GIVEN
|
|
132
|
+
end
|
|
133
|
+
|
|
130
134
|
raise ArgumentError, 'Length should be 9 or 14' unless [9, 14].include? length
|
|
131
135
|
|
|
132
136
|
random_digits = []
|
|
@@ -153,7 +157,11 @@ module Faker
|
|
|
153
157
|
regexify(/IT\d{2,4}\/\d{2,10}/)
|
|
154
158
|
end
|
|
155
159
|
|
|
156
|
-
def brazilian_company_number(formatted: false)
|
|
160
|
+
def brazilian_company_number(legacy_formatted = NOT_GIVEN, formatted: false)
|
|
161
|
+
warn_for_deprecated_arguments do |keywords|
|
|
162
|
+
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
|
163
|
+
end
|
|
164
|
+
|
|
157
165
|
digits = Array.new(8) { Faker::Number.digit.to_i } + [0, 0, 0, Faker::Number.non_zero_digit.to_i]
|
|
158
166
|
|
|
159
167
|
factors = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 6].cycle
|
|
@@ -7,15 +7,27 @@ module Faker
|
|
|
7
7
|
ACRONYM = 1
|
|
8
8
|
URL_LOGO = 2
|
|
9
9
|
|
|
10
|
-
def coin_name(coin: coin_array)
|
|
10
|
+
def coin_name(legacy_coin = NOT_GIVEN, coin: coin_array)
|
|
11
|
+
warn_for_deprecated_arguments do |keywords|
|
|
12
|
+
keywords << :coin if legacy_coin != NOT_GIVEN
|
|
13
|
+
end
|
|
14
|
+
|
|
11
15
|
coin[COIN_NAME]
|
|
12
16
|
end
|
|
13
17
|
|
|
14
|
-
def acronym(coin: coin_array)
|
|
18
|
+
def acronym(legacy_coin = NOT_GIVEN, coin: coin_array)
|
|
19
|
+
warn_for_deprecated_arguments do |keywords|
|
|
20
|
+
keywords << :coin if legacy_coin != NOT_GIVEN
|
|
21
|
+
end
|
|
22
|
+
|
|
15
23
|
coin[ACRONYM]
|
|
16
24
|
end
|
|
17
25
|
|
|
18
|
-
def url_logo(coin: coin_array)
|
|
26
|
+
def url_logo(legacy_coin = NOT_GIVEN, coin: coin_array)
|
|
27
|
+
warn_for_deprecated_arguments do |keywords|
|
|
28
|
+
keywords << :coin if legacy_coin != NOT_GIVEN
|
|
29
|
+
end
|
|
30
|
+
|
|
19
31
|
coin[URL_LOGO]
|
|
20
32
|
end
|
|
21
33
|
|
data/lib/faker/default/date.rb
CHANGED
|
@@ -3,14 +3,56 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Date < Base
|
|
5
5
|
class << self
|
|
6
|
-
|
|
6
|
+
##
|
|
7
|
+
# Produce a random date between two dates.
|
|
8
|
+
#
|
|
9
|
+
# @param from [Date] The start of the usable date range.
|
|
10
|
+
# @param to [Date] The end of the usable date range.
|
|
11
|
+
# @return [Date]
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# Faker::Date.between(from: 2.days.ago, to: Date.today)
|
|
15
|
+
# #=> #<Date: 2014-09-24>
|
|
16
|
+
#
|
|
17
|
+
# @faker.version 1.0.0
|
|
18
|
+
def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from:, to:)
|
|
19
|
+
warn_for_deprecated_arguments do |keywords|
|
|
20
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
21
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
22
|
+
end
|
|
23
|
+
|
|
7
24
|
from = get_date_object(from)
|
|
8
25
|
to = get_date_object(to)
|
|
9
26
|
|
|
10
27
|
Faker::Base.rand_in_range(from, to)
|
|
11
28
|
end
|
|
12
29
|
|
|
13
|
-
|
|
30
|
+
# rubocop:disable Metrics/ParameterLists
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Produce a random date between two dates.
|
|
34
|
+
#
|
|
35
|
+
# @param from [Date] The start of the usable date range.
|
|
36
|
+
# @param to [Date] The end of the usable date range.
|
|
37
|
+
# @param excepted [Date] A date to exclude.
|
|
38
|
+
# @return [Date]
|
|
39
|
+
#
|
|
40
|
+
# @example
|
|
41
|
+
# Faker::Date.between_except(from: 1.year.ago, to: 1.year.from_now, excepted: Date.today)
|
|
42
|
+
# #=> #<Date: 2014-10-03>
|
|
43
|
+
#
|
|
44
|
+
# @faker.version 1.6.2
|
|
45
|
+
def between_except(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_excepted = NOT_GIVEN, from:, to:, excepted:)
|
|
46
|
+
warn_for_deprecated_arguments do |keywords|
|
|
47
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
48
|
+
end
|
|
49
|
+
warn_for_deprecated_arguments do |keywords|
|
|
50
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
51
|
+
end
|
|
52
|
+
warn_for_deprecated_arguments do |keywords|
|
|
53
|
+
keywords << :excepted if legacy_excepted != NOT_GIVEN
|
|
54
|
+
end
|
|
55
|
+
|
|
14
56
|
raise ArgumentError, 'From date, to date and excepted date must not be the same' if from == to && to == excepted
|
|
15
57
|
|
|
16
58
|
excepted = get_date_object(excepted)
|
|
@@ -20,22 +62,69 @@ module Faker
|
|
|
20
62
|
break date.to_date if date != excepted
|
|
21
63
|
end
|
|
22
64
|
end
|
|
65
|
+
# rubocop:enable Metrics/ParameterLists
|
|
66
|
+
|
|
67
|
+
##
|
|
68
|
+
# Produce a random date in the future (up to N days).
|
|
69
|
+
#
|
|
70
|
+
# @param days [Integer] The maximum number of days to go into the future.
|
|
71
|
+
# @return [Date]
|
|
72
|
+
#
|
|
73
|
+
# @example
|
|
74
|
+
# Faker::Date.forward(days: 23) #=> #<Date: 2014-10-03>
|
|
75
|
+
#
|
|
76
|
+
# @faker.version 1.0.0
|
|
77
|
+
def forward(legacy_days = NOT_GIVEN, days: 365)
|
|
78
|
+
warn_for_deprecated_arguments do |keywords|
|
|
79
|
+
keywords << :days if legacy_days != NOT_GIVEN
|
|
80
|
+
end
|
|
23
81
|
|
|
24
|
-
def forward(days: 365)
|
|
25
82
|
from = ::Date.today + 1
|
|
26
83
|
to = ::Date.today + days
|
|
27
84
|
|
|
28
85
|
between(from: from, to: to).to_date
|
|
29
86
|
end
|
|
30
87
|
|
|
31
|
-
|
|
88
|
+
##
|
|
89
|
+
# Produce a random date in the past (up to N days).
|
|
90
|
+
#
|
|
91
|
+
# @param days [Integer] The maximum number of days to go into the past.
|
|
92
|
+
# @return [Date]
|
|
93
|
+
#
|
|
94
|
+
# @example
|
|
95
|
+
# Faker::Date.backward(days: 14) #=> #<Date: 2019-09-12>
|
|
96
|
+
#
|
|
97
|
+
# @faker.version 1.0.0
|
|
98
|
+
def backward(legacy_days = NOT_GIVEN, days: 365)
|
|
99
|
+
warn_for_deprecated_arguments do |keywords|
|
|
100
|
+
keywords << :days if legacy_days != NOT_GIVEN
|
|
101
|
+
end
|
|
102
|
+
|
|
32
103
|
from = ::Date.today - days
|
|
33
104
|
to = ::Date.today - 1
|
|
34
105
|
|
|
35
106
|
between(from: from, to: to).to_date
|
|
36
107
|
end
|
|
37
108
|
|
|
38
|
-
|
|
109
|
+
##
|
|
110
|
+
# Produce a random date in the past (up to N days).
|
|
111
|
+
#
|
|
112
|
+
# @param min_age [Integer] The minimum age that the birthday would imply.
|
|
113
|
+
# @param max_age [Integer] The maximum age that the birthday would imply.
|
|
114
|
+
# @return [Date]
|
|
115
|
+
#
|
|
116
|
+
# @example
|
|
117
|
+
# Faker::Date.birthday(min_age: 18, max_age: 65) #=> #<Date: 1986-03-28>
|
|
118
|
+
#
|
|
119
|
+
# @faker.version 1.4.3
|
|
120
|
+
def birthday(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65)
|
|
121
|
+
warn_for_deprecated_arguments do |keywords|
|
|
122
|
+
keywords << :min_age if legacy_min_age != NOT_GIVEN
|
|
123
|
+
end
|
|
124
|
+
warn_for_deprecated_arguments do |keywords|
|
|
125
|
+
keywords << :max_age if legacy_max_age != NOT_GIVEN
|
|
126
|
+
end
|
|
127
|
+
|
|
39
128
|
t = ::Date.today
|
|
40
129
|
|
|
41
130
|
from = birthday_date(t, max_age)
|
|
@@ -44,6 +133,30 @@ module Faker
|
|
|
44
133
|
between(from: from, to: to).to_date
|
|
45
134
|
end
|
|
46
135
|
|
|
136
|
+
##
|
|
137
|
+
# Produces a date in the year and/or month specified.
|
|
138
|
+
#
|
|
139
|
+
# @param month [Integer] represents the month of the date
|
|
140
|
+
# @param year [Integer] represents the year of the date
|
|
141
|
+
# @return [Date]
|
|
142
|
+
#
|
|
143
|
+
# @example
|
|
144
|
+
# Faker::Date.in_date_period #=> #<Date: 2019-09-01>
|
|
145
|
+
#
|
|
146
|
+
# @example
|
|
147
|
+
# Faker::Date.in_date_period(year: 2018, month: 2) #=> #<Date: 2018-02-26>
|
|
148
|
+
#
|
|
149
|
+
# @example
|
|
150
|
+
# Faker::Date.in_date_period(month: 2) #=> #<Date: 2019-02-26>
|
|
151
|
+
#
|
|
152
|
+
# @faker.version next
|
|
153
|
+
def in_date_period(month: nil, year: ::Date.today.year)
|
|
154
|
+
from = ::Date.new(year, month || 1, 1)
|
|
155
|
+
to = ::Date.new(year, month || 12, ::Date.civil(year, month || 12, -1).day)
|
|
156
|
+
|
|
157
|
+
between(from: from, to: to).to_date
|
|
158
|
+
end
|
|
159
|
+
|
|
47
160
|
private
|
|
48
161
|
|
|
49
162
|
def birthday_date(date, age)
|
|
@@ -23,7 +23,11 @@ module Faker
|
|
|
23
23
|
fetch('demographic.sex')
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
def height(unit: :metric)
|
|
26
|
+
def height(legacy_unit = NOT_GIVEN, unit: :metric)
|
|
27
|
+
warn_for_deprecated_arguments do |keywords|
|
|
28
|
+
keywords << :unit if legacy_unit != NOT_GIVEN
|
|
29
|
+
end
|
|
30
|
+
|
|
27
31
|
case unit
|
|
28
32
|
when :imperial
|
|
29
33
|
inches = rand_in_range(57, 86)
|