faker 2.15.1 → 3.4.2
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 +848 -34
- data/README.md +225 -103
- data/lib/faker/blockchain/aeternity.rb +1 -1
- data/lib/faker/blockchain/bitcoin.rb +2 -2
- data/lib/faker/blockchain/ethereum.rb +1 -1
- data/lib/faker/blockchain/tezos.rb +31 -3
- data/lib/faker/books/dune.rb +2 -10
- data/lib/faker/books/lovecraft.rb +9 -41
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/default/address.rb +7 -27
- data/lib/faker/default/alphanumeric.rb +2 -8
- data/lib/faker/default/app.rb +1 -10
- data/lib/faker/default/avatar.rb +1 -12
- data/lib/faker/default/bank.rb +25 -17
- data/lib/faker/default/barcode.rb +33 -22
- data/lib/faker/default/boolean.rb +1 -4
- data/lib/faker/default/cannabis.rb +10 -0
- data/lib/faker/default/chile_rut.rb +25 -25
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +71 -42
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +31 -17
- data/lib/faker/default/company.rb +137 -22
- data/lib/faker/default/crypto.rb +26 -4
- data/lib/faker/default/crypto_coin.rb +3 -15
- data/lib/faker/default/date.rb +65 -42
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +20 -18
- data/lib/faker/default/drone.rb +1 -1
- data/lib/faker/default/educator.rb +13 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/file.rb +5 -22
- data/lib/faker/default/finance.rb +30 -7
- data/lib/faker/default/food.rb +27 -1
- data/lib/faker/default/hipster.rb +8 -48
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +175 -27
- data/lib/faker/default/internet.rb +333 -114
- data/lib/faker/default/invoice.rb +4 -17
- data/lib/faker/default/json.rb +4 -21
- data/lib/faker/default/lorem.rb +175 -73
- data/lib/faker/default/lorem_flickr.rb +4 -37
- data/lib/faker/default/markdown.rb +10 -13
- data/lib/faker/default/marketing.rb +1 -1
- data/lib/faker/default/measurement.rb +16 -48
- data/lib/faker/default/name.rb +1 -5
- data/lib/faker/default/nation.rb +0 -3
- data/lib/faker/default/{nhs.rb → national_health_service.rb} +9 -8
- data/lib/faker/default/number.rb +33 -61
- data/lib/faker/default/omniauth.rb +55 -52
- data/lib/faker/default/phone_number.rb +36 -21
- data/lib/faker/default/placeholdit.rb +10 -20
- data/lib/faker/default/relationship.rb +1 -5
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/science.rb +108 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/south_africa.rb +3 -3
- data/lib/faker/default/string.rb +1 -7
- data/lib/faker/default/stripe.rb +4 -20
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/{music/show.rb → default/theater.rb} +11 -8
- data/lib/faker/default/time.rb +4 -34
- data/lib/faker/default/twitter.rb +7 -23
- data/lib/faker/default/types.rb +12 -34
- data/lib/faker/default/vehicle.rb +44 -54
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +2 -11
- data/lib/faker/games/clash_of_clans.rb +1 -1
- data/lib/faker/games/dnd.rb +49 -7
- data/lib/faker/games/dota.rb +14 -5
- data/lib/faker/games/final_fantasy_xiv.rb +73 -0
- data/lib/faker/games/minecraft.rb +1 -1
- data/lib/faker/games/myst.rb +1 -1
- data/lib/faker/games/tarkov.rb +205 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/witcher.rb +39 -0
- data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
- data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +51 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- data/lib/faker/japanese_media/one_piece.rb +1 -1
- data/lib/faker/locations/australia.rb +52 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/hackers.rb +48 -0
- data/lib/faker/movies/star_wars.rb +73 -5
- data/lib/faker/movies/{room.rb → the_room.rb} +4 -4
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/music/hiphop.rb +3 -3
- data/lib/faker/music/music.rb +12 -0
- data/lib/faker/music/rock_band.rb +12 -0
- data/lib/faker/music/smashing_pumpkins.rb +64 -0
- data/lib/faker/quotes/quote.rb +13 -0
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +34 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/chess.rb +90 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/sport.rb +116 -0
- data/lib/faker/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +1 -1
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/michael_scott.rb +0 -3
- data/lib/faker/tv_shows/south_park.rb +15 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/tv_shows/suits.rb +1 -1
- data/lib/faker/tv_shows/supernatural.rb +48 -0
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +26 -67
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/deprecator.rb +53 -0
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +13 -14
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +1 -2
- data/lib/locales/da-DK.yml +529 -35
- data/lib/locales/de-AT.yml +3487 -27
- data/lib/locales/de-CH.yml +4328 -12
- data/lib/locales/de.yml +7185 -99
- data/lib/locales/ee.yml +0 -1
- data/lib/locales/en/address.yml +1826 -562
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +108 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +1 -1
- data/lib/locales/en/bible.yml +90 -0
- data/lib/locales/en/bird.yml +1281 -0
- data/lib/locales/en/book.yml +487 -3
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/coffee.yml +1 -1
- data/lib/locales/en/commerce.yml +17 -0
- data/lib/locales/en/community.yml +17 -17
- data/lib/locales/en/company.yml +1 -0
- data/lib/locales/en/computer.yml +23 -4
- data/lib/locales/en/cowboy_bebop.yml +163 -0
- data/lib/locales/en/device.yml +112 -4
- data/lib/locales/en/dnd.yml +186 -1
- data/lib/locales/en/dog.yml +262 -7
- data/lib/locales/en/dota.yml +173 -0
- data/lib/locales/en/dune.yml +266 -397
- data/lib/locales/en/educator.yml +6 -0
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/finance.yml +27 -4
- data/lib/locales/en/food.yml +1067 -10
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/harry_potter.yml +1 -1
- data/lib/locales/en/heroes.yml +2 -2
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +2 -2
- data/lib/locales/en/id_number.yml +1 -1
- data/lib/locales/en/internet.yml +136 -3
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +7 -7
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/minecraft.yml +4 -4
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +14 -1
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +2 -1
- data/lib/locales/en/music.yml +152 -142
- data/lib/locales/en/naruto.yml +2 -3
- data/lib/locales/en/one_piece.yml +1 -1
- data/lib/locales/en/opera.yml +2 -2
- data/lib/locales/en/overwatch.yml +5 -7
- data/lib/locales/en/phone_number.yml +78 -3
- data/lib/locales/en/rock_band.yml +1 -0
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/shakespeare.yml +21 -24
- data/lib/locales/en/smashing_pumpkins.yml +382 -0
- data/lib/locales/en/source.yml +5 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_wars.yml +1 -1
- data/lib/locales/en/stranger_thing.yml +1 -1
- data/lib/locales/en/super_smash_bros.yml +7 -2
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +86 -0
- data/lib/locales/en/{room.yml → the_room.yml} +1 -1
- data/lib/locales/en/{show.yml → theater.yml} +1 -1
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/train_station.yml +280 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/vehicle.yml +2809 -75
- data/lib/locales/en/witcher.yml +37 -0
- data/lib/locales/en-AU.yml +718 -47
- data/lib/locales/en-CA.yml +373 -18
- data/lib/locales/en-GB.yml +116 -8
- data/lib/locales/en-IND.yml +1259 -17
- data/lib/locales/en-KE.yml +212 -0
- data/lib/locales/en-MS.yml +364 -17
- data/lib/locales/en-NEP.yml +212 -38
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +1153 -123
- data/lib/locales/en-PAK.yml +369 -10
- data/lib/locales/en-SG.yml +581 -16
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +6914 -74
- data/lib/locales/en-ZA.yml +1 -1
- data/lib/locales/en-au-ocker.yml +266 -22
- data/lib/locales/es-AR.yml +4570 -0
- data/lib/locales/es-MX.yml +1 -2
- data/lib/locales/es.yml +2 -3
- data/lib/locales/fi-FI.yml +3 -1
- data/lib/locales/fr/address.yml +20 -0
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/animal.yml +5 -0
- data/lib/locales/fr/appliance.yml +4 -0
- data/lib/locales/fr/book.yml +7 -0
- data/lib/locales/fr/color.yml +4 -0
- data/lib/locales/fr/company.yml +17 -0
- data/lib/locales/fr/compass.yml +23 -0
- data/lib/locales/fr/demographic.yml +4 -0
- data/lib/locales/fr/gender.yml +6 -0
- data/lib/locales/fr/internet.yml +4 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +22 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +2733 -44
- data/lib/locales/fr-CH.yml +1 -2
- data/lib/locales/fr.yml +2 -118
- data/lib/locales/hy.yml +3624 -119
- data/lib/locales/id.yml +839 -12
- data/lib/locales/it.yml +1304 -32
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +120539 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/animal.yml +5 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/cat.yml +5 -0
- data/lib/locales/ja/coffee.yml +4 -0
- data/lib/locales/ja/color.yml +4 -0
- data/lib/locales/ja/commerce.yml +11 -0
- data/lib/locales/ja/company.yml +8 -0
- data/lib/locales/ja/dog.yml +6 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/football.yml +115 -0
- data/lib/locales/ja/gender.yml +4 -0
- data/lib/locales/ja/lorem.yml +9 -0
- data/lib/locales/ja/name.yml +13 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +5 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/pokemon.yml +7 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/super_mario.yml +9 -0
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ja/touhou.yml +466 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +1361 -20
- data/lib/locales/lt.yml +315 -0
- data/lib/locales/lv.yml +1 -2
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +518 -29
- data/lib/locales/nl.yml +1 -1
- data/lib/locales/pl.yml +1 -2
- data/lib/locales/pt-BR.yml +8157 -660
- data/lib/locales/pt.yml +844 -45
- data/lib/locales/ru.yml +1355 -32
- data/lib/locales/sk.yml +4410 -43
- data/lib/locales/sv.yml +100 -0
- data/lib/locales/th.yml +76 -76
- data/lib/locales/tr.yml +1 -2
- data/lib/locales/uk.yml +1808 -44
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +1 -0
- data/lib/locales/zh-TW.yml +1 -0
- metadata +134 -133
- data/History.md +0 -176
- data/lib/faker/default/fillmurray.rb +0 -45
- data/lib/faker/default/lorem_pixel.rb +0 -69
- data/lib/locales/ja.yml +0 -105
- /data/lib/faker/default/{faker_adjective.rb → adjective.rb} +0 -0
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Barcode < Base
|
|
5
5
|
class << self
|
|
6
|
-
##
|
|
7
|
-
#
|
|
6
|
+
##
|
|
7
|
+
# Returns a EAN 8 or 13 digit format barcode number with check digit
|
|
8
|
+
# @return [String]
|
|
8
9
|
#
|
|
9
10
|
# @example
|
|
10
11
|
# Faker::Barcode.ean => "85657526"
|
|
@@ -16,8 +17,9 @@ module Faker
|
|
|
16
17
|
generate_barcode("barcode.ean_#{Integer(length)}")
|
|
17
18
|
end
|
|
18
19
|
|
|
19
|
-
##
|
|
20
|
-
#
|
|
20
|
+
##
|
|
21
|
+
# Returns a EAN 8 or 13 digit format barcode number with composite string attached with check digit
|
|
22
|
+
# @return [String]
|
|
21
23
|
#
|
|
22
24
|
# @example
|
|
23
25
|
# Faker::Barcode.ean_with_composite_sumbology => "41007624|JHOC6649"
|
|
@@ -29,8 +31,9 @@ module Faker
|
|
|
29
31
|
"#{ean(length)}|#{bothify(parse('barcode.composite_symbol'))}"
|
|
30
32
|
end
|
|
31
33
|
|
|
32
|
-
##
|
|
33
|
-
#
|
|
34
|
+
##
|
|
35
|
+
# Returns a UPC_A format barcode number with check digit
|
|
36
|
+
# @return [String]
|
|
34
37
|
#
|
|
35
38
|
# @example
|
|
36
39
|
# Faker::Barcode.upc_a => "766807541831"
|
|
@@ -40,8 +43,9 @@ module Faker
|
|
|
40
43
|
generate_barcode('barcode.upc_a')
|
|
41
44
|
end
|
|
42
45
|
|
|
43
|
-
##
|
|
44
|
-
#
|
|
46
|
+
##
|
|
47
|
+
# Returns a UPC_E format barcode number with check digit
|
|
48
|
+
# @return [String]
|
|
45
49
|
#
|
|
46
50
|
# @example
|
|
47
51
|
# Faker::Barcode.upc_e => "03746820"
|
|
@@ -51,8 +55,9 @@ module Faker
|
|
|
51
55
|
generate_barcode('barcode.upc_e')
|
|
52
56
|
end
|
|
53
57
|
|
|
54
|
-
##
|
|
55
|
-
#
|
|
58
|
+
##
|
|
59
|
+
# Returns a UPC_A format barcode number with composite string attached with check digit
|
|
60
|
+
# @return [String]
|
|
56
61
|
#
|
|
57
62
|
# @example
|
|
58
63
|
# Faker::Barcode.upc_a_with_composite_symbology => "790670155765|JOVG6208"
|
|
@@ -62,8 +67,9 @@ module Faker
|
|
|
62
67
|
"#{upc_a}|#{bothify(parse('barcode.composite_symbol'))}"
|
|
63
68
|
end
|
|
64
69
|
|
|
65
|
-
##
|
|
66
|
-
#
|
|
70
|
+
##
|
|
71
|
+
# Returns a UPC_E format barcode number with composite string attached with check digit
|
|
72
|
+
# @return [String]
|
|
67
73
|
#
|
|
68
74
|
# @example
|
|
69
75
|
# Faker::Barcode.upc_e_with_composite_symbology => "05149247|BKZX9722"
|
|
@@ -73,8 +79,9 @@ module Faker
|
|
|
73
79
|
"#{upc_e}|#{bothify(parse('barcode.composite_symbol'))}"
|
|
74
80
|
end
|
|
75
81
|
|
|
76
|
-
##
|
|
77
|
-
#
|
|
82
|
+
##
|
|
83
|
+
# Returns a ISBN format barcode number with check digit
|
|
84
|
+
# @return [String]
|
|
78
85
|
#
|
|
79
86
|
# @example
|
|
80
87
|
# Faker::Barcode.isbn => "9798363807732"
|
|
@@ -84,8 +91,9 @@ module Faker
|
|
|
84
91
|
generate_barcode('barcode.isbn')
|
|
85
92
|
end
|
|
86
93
|
|
|
87
|
-
##
|
|
88
|
-
#
|
|
94
|
+
##
|
|
95
|
+
# Returns a ISMN format barcode number with check digit
|
|
96
|
+
# @return [String]
|
|
89
97
|
#
|
|
90
98
|
# @example
|
|
91
99
|
# Faker::Barcode.ismn => "9790527672897"
|
|
@@ -95,8 +103,9 @@ module Faker
|
|
|
95
103
|
generate_barcode('barcode.ismn')
|
|
96
104
|
end
|
|
97
105
|
|
|
98
|
-
##
|
|
99
|
-
#
|
|
106
|
+
##
|
|
107
|
+
# Returns a ISSN format barcode number with check digit
|
|
108
|
+
# @return [String]
|
|
100
109
|
#
|
|
101
110
|
# @example
|
|
102
111
|
# Faker::Barcode.issn => "9775541703338"
|
|
@@ -114,9 +123,10 @@ module Faker
|
|
|
114
123
|
"#{barcode}#{check_digit}"
|
|
115
124
|
end
|
|
116
125
|
|
|
117
|
-
##
|
|
126
|
+
##
|
|
127
|
+
# Returns the sum of even and odd numbers from value passed
|
|
118
128
|
#
|
|
119
|
-
# @
|
|
129
|
+
# @return [Array]
|
|
120
130
|
#
|
|
121
131
|
# @example
|
|
122
132
|
# Faker::Barcode.send(:sum_even_odd, 12345) => [9, 5]
|
|
@@ -137,9 +147,10 @@ module Faker
|
|
|
137
147
|
[sum_odd, sum_even]
|
|
138
148
|
end
|
|
139
149
|
|
|
140
|
-
##
|
|
150
|
+
##
|
|
151
|
+
# Generates the check digits from sum passed
|
|
141
152
|
#
|
|
142
|
-
# @
|
|
153
|
+
# @return [Integer]
|
|
143
154
|
#
|
|
144
155
|
# @example
|
|
145
156
|
# Faker::Barcode.send(:generate_check_digit, 12, 4) => 0
|
|
@@ -15,10 +15,7 @@ module Faker
|
|
|
15
15
|
# Faker::Boolean.boolean(true_ratio: 0.2) #=> false
|
|
16
16
|
#
|
|
17
17
|
# @faker.version 1.6.2
|
|
18
|
-
def boolean(
|
|
19
|
-
warn_for_deprecated_arguments do |keywords|
|
|
20
|
-
keywords << :true_ratio if legacy_true_ratio != NOT_GIVEN
|
|
21
|
-
end
|
|
18
|
+
def boolean(true_ratio: 0.5)
|
|
22
19
|
(rand < true_ratio)
|
|
23
20
|
end
|
|
24
21
|
end
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Cannabis < Base
|
|
5
|
+
##
|
|
5
6
|
# Produces a random strain.
|
|
6
7
|
#
|
|
7
8
|
# @return [String]
|
|
@@ -14,6 +15,7 @@ module Faker
|
|
|
14
15
|
fetch('cannabis.strains')
|
|
15
16
|
end
|
|
16
17
|
|
|
18
|
+
##
|
|
17
19
|
# Produces a random abbreviation.
|
|
18
20
|
#
|
|
19
21
|
# @return [String]
|
|
@@ -26,6 +28,7 @@ module Faker
|
|
|
26
28
|
fetch('cannabis.cannabinoid_abbreviations')
|
|
27
29
|
end
|
|
28
30
|
|
|
31
|
+
##
|
|
29
32
|
# Produces a random cannabinoid type.
|
|
30
33
|
#
|
|
31
34
|
# @return [String]
|
|
@@ -38,6 +41,7 @@ module Faker
|
|
|
38
41
|
fetch('cannabis.cannabinoids')
|
|
39
42
|
end
|
|
40
43
|
|
|
44
|
+
##
|
|
41
45
|
# Produces a random terpene type.
|
|
42
46
|
#
|
|
43
47
|
# @return [String]
|
|
@@ -50,6 +54,7 @@ module Faker
|
|
|
50
54
|
fetch('cannabis.terpenes')
|
|
51
55
|
end
|
|
52
56
|
|
|
57
|
+
##
|
|
53
58
|
# Produces a random kind of medical use.
|
|
54
59
|
#
|
|
55
60
|
# @return [String]
|
|
@@ -62,6 +67,7 @@ module Faker
|
|
|
62
67
|
fetch('cannabis.medical_uses')
|
|
63
68
|
end
|
|
64
69
|
|
|
70
|
+
##
|
|
65
71
|
# Produces a random health benefit.
|
|
66
72
|
#
|
|
67
73
|
# @return [String]
|
|
@@ -74,6 +80,7 @@ module Faker
|
|
|
74
80
|
fetch('cannabis.health_benefits')
|
|
75
81
|
end
|
|
76
82
|
|
|
83
|
+
##
|
|
77
84
|
# Produces a random category.
|
|
78
85
|
#
|
|
79
86
|
# @return [String]
|
|
@@ -86,6 +93,7 @@ module Faker
|
|
|
86
93
|
fetch('cannabis.categories')
|
|
87
94
|
end
|
|
88
95
|
|
|
96
|
+
##
|
|
89
97
|
# Produces a random type.
|
|
90
98
|
#
|
|
91
99
|
# @return [String]
|
|
@@ -98,6 +106,7 @@ module Faker
|
|
|
98
106
|
fetch('cannabis.types')
|
|
99
107
|
end
|
|
100
108
|
|
|
109
|
+
##
|
|
101
110
|
# Produces a random buzzword.
|
|
102
111
|
#
|
|
103
112
|
# @return [String]
|
|
@@ -110,6 +119,7 @@ module Faker
|
|
|
110
119
|
fetch('cannabis.buzzwords')
|
|
111
120
|
end
|
|
112
121
|
|
|
122
|
+
##
|
|
113
123
|
# Produces a random brand.
|
|
114
124
|
#
|
|
115
125
|
# @return [String]
|
|
@@ -8,23 +8,19 @@ module Faker
|
|
|
8
8
|
##
|
|
9
9
|
# Produces a random Chilean RUT (Rol Unico Tributario, ID with 8 digits).
|
|
10
10
|
#
|
|
11
|
-
# @param min_rut [Integer] Specifies the minimum value of the
|
|
12
|
-
# @param
|
|
11
|
+
# @param min_rut [Integer] Specifies the minimum value of the RUT.
|
|
12
|
+
# @param max_rut [Integer] Specifies the maximum value of the RUT.
|
|
13
|
+
# @param fixed [Boolean] Determines if the RUT is fixed (returns the min_rut value).
|
|
13
14
|
# @return [Number]
|
|
14
15
|
#
|
|
15
16
|
# @example
|
|
16
17
|
# Faker::ChileRut.rut #=> 11235813
|
|
17
|
-
# Faker::ChileRut.rut(min_rut:
|
|
18
|
-
# Faker::ChileRut.rut(min_rut:
|
|
18
|
+
# Faker::ChileRut.rut(min_rut: 10_000_000, max_rut: 30_000_000) #=> 21853211
|
|
19
|
+
# Faker::ChileRut.rut(min_rut: 20_890_156, fixed: true) #=> 20890156
|
|
19
20
|
#
|
|
20
|
-
# @faker.version
|
|
21
|
-
def rut(
|
|
22
|
-
|
|
23
|
-
keywords << :min_rut if legacy_min_rut != NOT_GIVEN
|
|
24
|
-
keywords << :fixed if legacy_fixed != NOT_GIVEN
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
@last_rut = fixed ? min_rut : rand_in_range(min_rut, 99_999_999)
|
|
21
|
+
# @faker.version next
|
|
22
|
+
def rut(min_rut: 1, max_rut: 99_999_999, fixed: false)
|
|
23
|
+
@last_rut = fixed ? min_rut : rand_in_range(min_rut, max_rut)
|
|
28
24
|
end
|
|
29
25
|
|
|
30
26
|
##
|
|
@@ -37,7 +33,7 @@ module Faker
|
|
|
37
33
|
#
|
|
38
34
|
# @faker.version 1.9.2
|
|
39
35
|
def dv
|
|
40
|
-
split_reversed_rut = @last_rut.to_s.reverse.
|
|
36
|
+
split_reversed_rut = @last_rut.to_s.reverse.chars
|
|
41
37
|
seq = [2, 3, 4, 5, 6, 7]
|
|
42
38
|
i = 0
|
|
43
39
|
digit_sum = split_reversed_rut.reduce(0) do |sum, n|
|
|
@@ -73,26 +69,30 @@ module Faker
|
|
|
73
69
|
##
|
|
74
70
|
# Produces a random Chilean RUT (Rol Unico Tributario, ID with 8 digits) with a dv (digito verificador, check-digit).
|
|
75
71
|
#
|
|
76
|
-
# @param min_rut [Integer] Specifies the minimum value of the
|
|
77
|
-
# @param
|
|
72
|
+
# @param min_rut [Integer] Specifies the minimum value of the RUT.
|
|
73
|
+
# @param max_rut [Integer] Specifies the maximum value of the RUT.
|
|
74
|
+
# @param fixed [Boolean] Determines if the RUT is fixed (returns the min_rut value).
|
|
78
75
|
# @return [String]
|
|
79
76
|
#
|
|
80
77
|
# @example
|
|
81
78
|
# Faker::ChileRut.full_rut #=> "30686957-4"
|
|
82
|
-
# Faker::ChileRut.full_rut(min_rut:
|
|
83
|
-
# Faker::ChileRut.full_rut(min_rut:
|
|
79
|
+
# Faker::ChileRut.full_rut(min_rut: 10_000_000, max_rut: 30_000_000) #=> "20686957-4"
|
|
80
|
+
# Faker::ChileRut.full_rut(min_rut: 30_686_957, fixed: true) #=> "30686957-4"
|
|
84
81
|
#
|
|
85
|
-
# @faker.version
|
|
86
|
-
def full_rut(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
"#{rut(min_rut: min_rut, fixed: fixed)}-#{dv}"
|
|
82
|
+
# @faker.version next
|
|
83
|
+
def full_rut(min_rut: 1, max_rut: 99_999_999, fixed: false, formatted: false)
|
|
84
|
+
this_rut = rut(min_rut: min_rut, max_rut: max_rut, fixed: fixed)
|
|
85
|
+
this_rut = format_rut(this_rut) if formatted
|
|
86
|
+
"#{this_rut}-#{dv}"
|
|
93
87
|
end
|
|
94
88
|
|
|
95
89
|
attr_reader :last_rut
|
|
90
|
+
|
|
91
|
+
private
|
|
92
|
+
|
|
93
|
+
def format_rut(rut)
|
|
94
|
+
rut.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1.').reverse
|
|
95
|
+
end
|
|
96
96
|
end
|
|
97
97
|
end
|
|
98
98
|
end
|
data/lib/faker/default/code.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Faker
|
|
|
5
5
|
flexible :code
|
|
6
6
|
class << self
|
|
7
7
|
##
|
|
8
|
-
# Produces a random NPI (National Provider
|
|
8
|
+
# Produces a random NPI (National Provider Identifier) code.
|
|
9
9
|
#
|
|
10
10
|
# @return [String]
|
|
11
11
|
#
|
|
@@ -29,11 +29,7 @@ module Faker
|
|
|
29
29
|
# Faker::Code.isbn #=> "170366802-2"
|
|
30
30
|
#
|
|
31
31
|
# @faker.version 2.2.0
|
|
32
|
-
def isbn(
|
|
33
|
-
warn_for_deprecated_arguments do |keywords|
|
|
34
|
-
keywords << :base if legacy_base != NOT_GIVEN
|
|
35
|
-
end
|
|
36
|
-
|
|
32
|
+
def isbn(base: 10)
|
|
37
33
|
case base
|
|
38
34
|
when 10 then generate_base10_isbn
|
|
39
35
|
when 13 then generate_base13_isbn
|
|
@@ -53,15 +49,11 @@ module Faker
|
|
|
53
49
|
# Faker::Code.ean #=> "9941880131907"
|
|
54
50
|
#
|
|
55
51
|
# @faker.version 2.2.0
|
|
56
|
-
def ean(
|
|
57
|
-
warn_for_deprecated_arguments do |keywords|
|
|
58
|
-
keywords << :base if legacy_base != NOT_GIVEN
|
|
59
|
-
end
|
|
60
|
-
|
|
52
|
+
def ean(base: 13)
|
|
61
53
|
case base
|
|
62
54
|
when 8 then generate_base8_ean
|
|
63
55
|
when 13 then generate_base13_ean
|
|
64
|
-
else raise ArgumentError, 'base must be
|
|
56
|
+
else raise ArgumentError, 'base must be 8 or 13'
|
|
65
57
|
end
|
|
66
58
|
end
|
|
67
59
|
|
|
@@ -80,11 +72,11 @@ module Faker
|
|
|
80
72
|
value << "-#{vd}"
|
|
81
73
|
end
|
|
82
74
|
|
|
75
|
+
##
|
|
76
|
+
# Produces a random NRIC (National Registry Identity Card) code.
|
|
83
77
|
# By default generates a Singaporean NRIC ID for someone
|
|
84
78
|
# who is born between the age of 18 and 65.
|
|
85
79
|
#
|
|
86
|
-
# Produces a random NRIC (National Registry Identity Card) code.
|
|
87
|
-
#
|
|
88
80
|
# @param min_age [Integer] the min age of the person in years
|
|
89
81
|
# @param max_age [Integer] the max age of the person in years
|
|
90
82
|
# @return [String]
|
|
@@ -99,18 +91,25 @@ module Faker
|
|
|
99
91
|
# Faker::Code.nric #=> "S6372958B"
|
|
100
92
|
#
|
|
101
93
|
# @faker.version 2.2.0
|
|
102
|
-
def nric(
|
|
103
|
-
warn_for_deprecated_arguments do |keywords|
|
|
104
|
-
keywords << :min_age if legacy_min_age != NOT_GIVEN
|
|
105
|
-
keywords << :max_age if legacy_max_age != NOT_GIVEN
|
|
106
|
-
end
|
|
107
|
-
|
|
94
|
+
def nric(min_age: 18, max_age: 65)
|
|
108
95
|
birthyear = Date.birthday(min_age: min_age, max_age: max_age).year
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
96
|
+
|
|
97
|
+
generate(:string) do |g|
|
|
98
|
+
g.computed(name: :prefix) do
|
|
99
|
+
if birthyear < 2000
|
|
100
|
+
'S'
|
|
101
|
+
else
|
|
102
|
+
'T'
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
g.computed(name: :yy) do
|
|
106
|
+
birthyear.to_s[-2..]
|
|
107
|
+
end
|
|
108
|
+
g.int(name: :values, length: 5)
|
|
109
|
+
g.computed(name: :check, deps: %i[prefix yy values]) do |prefix, yy, values|
|
|
110
|
+
generate_nric_check_alphabet("#{yy}#{values}", prefix)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
114
113
|
end
|
|
115
114
|
|
|
116
115
|
##
|
|
@@ -206,50 +205,80 @@ module Faker
|
|
|
206
205
|
str[len - 1] = (10 - (sum % 10)) % 10
|
|
207
206
|
|
|
208
207
|
# Output the IMEI value.
|
|
209
|
-
str.join
|
|
208
|
+
str.join
|
|
210
209
|
end
|
|
211
210
|
|
|
212
211
|
def generate_base10_isbn
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
212
|
+
generate(:string) do |g|
|
|
213
|
+
g.int(name: :values, length: 9)
|
|
214
|
+
g.lit('-')
|
|
215
|
+
g.computed(name: :checksum, deps: [:values]) do |values|
|
|
216
|
+
remainder = sum(values.to_s) { |value, offset| (offset + 1) * value.to_i } % 11
|
|
217
|
+
if remainder == 10
|
|
218
|
+
'X'
|
|
219
|
+
else
|
|
220
|
+
remainder.to_s
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
end
|
|
216
224
|
end
|
|
217
225
|
|
|
218
226
|
def generate_base13_isbn
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
227
|
+
generate(:string) do |g|
|
|
228
|
+
g.int(name: :values, length: 12)
|
|
229
|
+
g.lit('-')
|
|
230
|
+
g.computed(name: :checksum, deps: [:values]) do |values|
|
|
231
|
+
remainder = sum(values.to_s) { |value, offset| offset.even? ? value.to_i : value.to_i * 3 } % 10
|
|
232
|
+
(10 - remainder) % 10
|
|
233
|
+
end
|
|
234
|
+
end
|
|
222
235
|
end
|
|
223
236
|
|
|
224
237
|
def sum(values)
|
|
225
|
-
values.
|
|
238
|
+
values.chars.each_with_index.inject(0) do |sum, (value, index)|
|
|
226
239
|
sum + yield(value, index)
|
|
227
240
|
end
|
|
228
241
|
end
|
|
229
242
|
|
|
230
243
|
def generate_base8_ean
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
244
|
+
generate(:string) do |g|
|
|
245
|
+
g.int(name: :values, length: 7)
|
|
246
|
+
g.computed(name: :checksum, deps: [:values]) do |values|
|
|
247
|
+
check_digit = 10 - values.to_s.chars.each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT8[i] } % 10
|
|
248
|
+
if check_digit == 10
|
|
249
|
+
0
|
|
250
|
+
else
|
|
251
|
+
check_digit
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
end
|
|
234
255
|
end
|
|
235
256
|
|
|
236
257
|
def generate_base13_ean
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
258
|
+
generate(:string) do |g|
|
|
259
|
+
g.int(name: :values, length: 12)
|
|
260
|
+
g.computed(name: :checksum, deps: [:values]) do |values|
|
|
261
|
+
check_digit = 10 - values.to_s.chars.each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT13[i] } % 10
|
|
262
|
+
if check_digit == 10
|
|
263
|
+
0
|
|
264
|
+
else
|
|
265
|
+
check_digit
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
end
|
|
240
269
|
end
|
|
241
270
|
|
|
242
271
|
EAN_CHECK_DIGIT8 = [3, 1, 3, 1, 3, 1, 3].freeze
|
|
243
272
|
EAN_CHECK_DIGIT13 = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3].freeze
|
|
244
273
|
|
|
245
274
|
def rut_verificator_digit(rut)
|
|
246
|
-
total = rut.to_s.rjust(8, '0').
|
|
247
|
-
(11 - total % 11).to_s.gsub(
|
|
275
|
+
total = rut.to_s.rjust(8, '0').chars.zip(%w[3 2 7 6 5 4 3 2]).collect { |a, b| a.to_i * b.to_i }.inject(:+)
|
|
276
|
+
(11 - total % 11).to_s.gsub('10', 'k').gsub('11', '0')
|
|
248
277
|
end
|
|
249
278
|
|
|
250
279
|
def generate_nric_check_alphabet(values, prefix)
|
|
251
280
|
weight = %w[2 7 6 5 4 3 2]
|
|
252
|
-
total = values.
|
|
281
|
+
total = values.chars.zip(weight).collect { |a, b| a.to_i * b.to_i }.inject(:+)
|
|
253
282
|
total += 4 if prefix == 'T'
|
|
254
283
|
%w[A B C D E F G H I Z J][10 - total % 11]
|
|
255
284
|
end
|
data/lib/faker/default/color.rb
CHANGED
|
@@ -3,17 +3,34 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Color < Base
|
|
5
5
|
class << self
|
|
6
|
+
LIGHTNESS_LOOKUP = {
|
|
7
|
+
light: 0.8,
|
|
8
|
+
dark: 0.2
|
|
9
|
+
}.freeze
|
|
6
10
|
##
|
|
7
11
|
# Produces a hex color code.
|
|
12
|
+
# Clients are able to specify the hue, saturation, or lightness of the required color.
|
|
13
|
+
# Alternatively a client can simply specify that they need a light or dark color.
|
|
14
|
+
#
|
|
15
|
+
# @param args [Hash, Symbol] Allows the client to specify what color should be return
|
|
8
16
|
#
|
|
9
17
|
# @return [String]
|
|
10
18
|
#
|
|
11
19
|
# @example
|
|
12
20
|
# Faker::Color.hex_color #=> "#31a785"
|
|
21
|
+
# @example
|
|
22
|
+
# Faker::Color.hex_color(hue: 118, saturation: 1, lightness: 0.53) #=> "#048700"
|
|
23
|
+
# @example
|
|
24
|
+
# Faker::Color.hex_color(:light) #=> "#FFEE99"
|
|
25
|
+
# @example
|
|
26
|
+
# Faker::Color.hex_color(:dark) #=> "#665500"
|
|
13
27
|
#
|
|
14
|
-
# @faker.version
|
|
15
|
-
def hex_color
|
|
16
|
-
|
|
28
|
+
# @faker.version next
|
|
29
|
+
def hex_color(args = nil)
|
|
30
|
+
hsl_hash = {}
|
|
31
|
+
hsl_hash = { lightness: LIGHTNESS_LOOKUP[args] } if %i[dark light].include?(args)
|
|
32
|
+
hsl_hash = args if args.is_a?(Hash)
|
|
33
|
+
hsl_to_hex(hsl_color(**hsl_hash))
|
|
17
34
|
end
|
|
18
35
|
|
|
19
36
|
##
|
|
@@ -51,14 +68,28 @@ module Faker
|
|
|
51
68
|
# Produces an array of floats representing an HSL color.
|
|
52
69
|
# The array is in the form of `[hue, saturation, lightness]`.
|
|
53
70
|
#
|
|
71
|
+
# @param hue [FLoat] Optional value to use for hue
|
|
72
|
+
# @param saturation [Float] Optional value to use for saturation
|
|
73
|
+
# @param lightness [Float] Optional value to use for lightness
|
|
54
74
|
# @return [Array(Float, Float, Float)]
|
|
55
75
|
#
|
|
56
76
|
# @example
|
|
57
77
|
# Faker::Color.hsl_color #=> [69.87, 0.66, 0.3]
|
|
78
|
+
# @example
|
|
79
|
+
# Faker::Color.hsl_color(hue: 70, saturation: 0.5, lightness: 0.8) #=> [70, 0.5, 0.8]
|
|
80
|
+
# @example
|
|
81
|
+
# Faker::Color.hsl_color(hue: 70) #=> [70, 0.66, 0.6]
|
|
82
|
+
# @example
|
|
83
|
+
# Faker::Color.hsl_color(saturation: 0.2) #=> [54, 0.2, 0.3]
|
|
84
|
+
# @example
|
|
85
|
+
# Faker::Color.hsl_color(lightness: 0.6) #=> [69.87, 0.66, 0.6]
|
|
58
86
|
#
|
|
59
|
-
# @faker.version
|
|
60
|
-
def hsl_color
|
|
61
|
-
|
|
87
|
+
# @faker.version next
|
|
88
|
+
def hsl_color(hue: nil, saturation: nil, lightness: nil)
|
|
89
|
+
valid_hue = hue || sample((0..360).to_a)
|
|
90
|
+
valid_saturation = saturation&.clamp(0, 1) || rand.round(2)
|
|
91
|
+
valid_lightness = lightness&.clamp(0, 1) || rand.round(2)
|
|
92
|
+
[valid_hue, valid_saturation, valid_lightness]
|
|
62
93
|
end
|
|
63
94
|
|
|
64
95
|
##
|
|
@@ -74,6 +105,46 @@ module Faker
|
|
|
74
105
|
def hsla_color
|
|
75
106
|
hsl_color << rand.round(1)
|
|
76
107
|
end
|
|
108
|
+
|
|
109
|
+
private
|
|
110
|
+
|
|
111
|
+
##
|
|
112
|
+
# Produces a hex code representation of an HSL color
|
|
113
|
+
#
|
|
114
|
+
# @param a_hsl_color [Array(Float, Float, Float)] The array that represents the HSL color
|
|
115
|
+
#
|
|
116
|
+
# @return [String]
|
|
117
|
+
#
|
|
118
|
+
# @example
|
|
119
|
+
# hsl_to_hex([50, 100,80]) #=> #FFEE99
|
|
120
|
+
#
|
|
121
|
+
# @see https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB
|
|
122
|
+
# @see https://github.com/jpmckinney/color-generator/blob/master/lib/color-generator.rb
|
|
123
|
+
#
|
|
124
|
+
def hsl_to_hex(a_hsl_color)
|
|
125
|
+
h, s, l = a_hsl_color
|
|
126
|
+
c = (1 - (2 * l - 1).abs) * s
|
|
127
|
+
h_prime = h / 60
|
|
128
|
+
x = c * (1 - (h_prime % 2 - 1).abs)
|
|
129
|
+
m = l - 0.5 * c
|
|
130
|
+
|
|
131
|
+
rgb = case h_prime.to_i
|
|
132
|
+
when 0 # 0 <= H' < 1
|
|
133
|
+
[c, x, 0]
|
|
134
|
+
when 1 # 1 <= H' < 2
|
|
135
|
+
[x, c, 0]
|
|
136
|
+
when 2 # 2 <= H' < 3
|
|
137
|
+
[0, c, x]
|
|
138
|
+
when 3 # 3 <= H' < 4
|
|
139
|
+
[0, x, c]
|
|
140
|
+
when 4 # 4 <= H' < 5
|
|
141
|
+
[x, 0, c]
|
|
142
|
+
else # 5 <= H' < 6
|
|
143
|
+
[c, 0, x]
|
|
144
|
+
end.map { |value| ((value + m) * 255).round }
|
|
145
|
+
|
|
146
|
+
format('#%02x%02x%02x', rgb[0], rgb[1], rgb[2])
|
|
147
|
+
end
|
|
77
148
|
end
|
|
78
149
|
end
|
|
79
150
|
end
|