faker 2.20.0 → 3.0.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.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +184 -7
  3. data/History.md +1 -1
  4. data/README.md +15 -11
  5. data/lib/faker/blockchain/aeternity.rb +1 -1
  6. data/lib/faker/blockchain/ethereum.rb +1 -1
  7. data/lib/faker/blockchain/tezos.rb +1 -1
  8. data/lib/faker/books/dune.rb +2 -10
  9. data/lib/faker/books/lovecraft.rb +7 -38
  10. data/lib/faker/default/address.rb +5 -25
  11. data/lib/faker/default/{faker_adjective.rb → adjective.rb} +0 -0
  12. data/lib/faker/default/alphanumeric.rb +2 -8
  13. data/lib/faker/default/app.rb +1 -10
  14. data/lib/faker/default/avatar.rb +1 -12
  15. data/lib/faker/default/bank.rb +9 -17
  16. data/lib/faker/default/boolean.rb +1 -4
  17. data/lib/faker/default/chile_rut.rb +8 -14
  18. data/lib/faker/default/code.rb +10 -23
  19. data/lib/faker/default/color.rb +77 -6
  20. data/lib/faker/default/commerce.rb +3 -17
  21. data/lib/faker/default/company.rb +6 -14
  22. data/lib/faker/default/crypto_coin.rb +3 -15
  23. data/lib/faker/default/date.rb +5 -38
  24. data/lib/faker/default/demographic.rb +1 -5
  25. data/lib/faker/default/driving_licence.rb +1 -11
  26. data/lib/faker/default/file.rb +5 -24
  27. data/lib/faker/default/fillmurray.rb +1 -10
  28. data/lib/faker/default/finance.rb +17 -7
  29. data/lib/faker/default/hipster.rb +6 -45
  30. data/lib/faker/default/id_number.rb +108 -11
  31. data/lib/faker/default/internet.rb +34 -71
  32. data/lib/faker/default/invoice.rb +3 -16
  33. data/lib/faker/default/json.rb +2 -20
  34. data/lib/faker/default/lorem.rb +9 -66
  35. data/lib/faker/default/lorem_flickr.rb +4 -32
  36. data/lib/faker/default/lorem_pixel.rb +4 -10
  37. data/lib/faker/default/markdown.rb +6 -11
  38. data/lib/faker/default/measurement.rb +8 -40
  39. data/lib/faker/default/name.rb +1 -5
  40. data/lib/faker/default/nhs.rb +2 -6
  41. data/lib/faker/default/number.rb +10 -55
  42. data/lib/faker/default/omniauth.rb +5 -39
  43. data/lib/faker/default/phone_number.rb +1 -5
  44. data/lib/faker/default/placeholdit.rb +1 -12
  45. data/lib/faker/default/relationship.rb +1 -5
  46. data/lib/faker/default/source.rb +3 -16
  47. data/lib/faker/default/string.rb +1 -5
  48. data/lib/faker/default/stripe.rb +4 -20
  49. data/lib/faker/default/time.rb +4 -32
  50. data/lib/faker/default/twitter.rb +3 -17
  51. data/lib/faker/default/types.rb +5 -27
  52. data/lib/faker/default/vehicle.rb +21 -21
  53. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  54. data/lib/faker/default/world_cup.rb +2 -11
  55. data/lib/faker/games/dota.rb +1 -5
  56. data/lib/faker/games/tarkov.rb +205 -0
  57. data/lib/faker/japanese_media/kamen_rider.rb +2 -2
  58. data/lib/faker/japanese_media/one_piece.rb +1 -1
  59. data/lib/faker/movies/hackers.rb +48 -0
  60. data/lib/faker/movies/star_wars.rb +1 -5
  61. data/lib/faker/movies/tron.rb +161 -0
  62. data/lib/faker/sports/mountaineering.rb +22 -0
  63. data/lib/faker/sports/sport.rb +110 -0
  64. data/lib/faker/version.rb +1 -1
  65. data/lib/faker.rb +15 -63
  66. data/lib/helpers/base58.rb +1 -1
  67. data/lib/helpers/unique_generator.rb +13 -11
  68. data/lib/locales/en/australia.yml +3 -4
  69. data/lib/locales/en/computer.yml +23 -4
  70. data/lib/locales/en/dota.yml +113 -0
  71. data/lib/locales/en/file.yml +9 -1
  72. data/lib/locales/en/finance.yml +3 -1
  73. data/lib/locales/en/game.yml +0 -1
  74. data/lib/locales/en/hackers.yml +53 -0
  75. data/lib/locales/en/heroes.yml +2 -2
  76. data/lib/locales/en/internet.yml +29 -0
  77. data/lib/locales/en/mountaineering.yml +14 -0
  78. data/lib/locales/en/movie.yml +2 -1
  79. data/lib/locales/en/naruto.yml +2 -3
  80. data/lib/locales/en/one_piece.yml +1 -1
  81. data/lib/locales/en/opera.yml +1 -1
  82. data/lib/locales/en/overwatch.yml +5 -7
  83. data/lib/locales/en/source.yml +5 -0
  84. data/lib/locales/en/sport.yml +130 -0
  85. data/lib/locales/en/tarkov.yml +593 -0
  86. data/lib/locales/en/tron.yml +227 -0
  87. data/lib/locales/en/vehicle.yml +2809 -75
  88. data/lib/locales/en-AU.yml +1 -1
  89. data/lib/locales/en-CA.yml +1 -0
  90. data/lib/locales/es-AR.yml +2 -2
  91. data/lib/locales/fi-FI.yml +2 -1
  92. data/lib/locales/fr/adjective.yml +266 -0
  93. data/lib/locales/fr/ancient.yml +141 -0
  94. data/lib/locales/hy.yml +1 -1
  95. data/lib/locales/ja/adjective.yml +148 -0
  96. data/lib/locales/ja/dog.yml +1 -0
  97. data/lib/locales/ja/emotion.yml +51 -0
  98. data/lib/locales/ja/naruto.yml +230 -0
  99. data/lib/locales/ja/relationship.yml +10 -0
  100. data/lib/locales/pl.yml +1 -1
  101. data/lib/locales/th.yml +76 -76
  102. metadata +65 -25
@@ -6,8 +6,6 @@ module Faker
6
6
  # @private
7
7
  SUPPORTED_FORMATS = %w[png jpg bmp].freeze
8
8
 
9
- # rubocop:disable Metrics/ParameterLists
10
-
11
9
  ##
12
10
  # Produces a URL for an avatar from robohash.org
13
11
  #
@@ -38,15 +36,7 @@ module Faker
38
36
  # #=> "https://robohash.org/my-own-slug.bmp?size=50x50&set=set1&bgset=bg1"
39
37
  #
40
38
  # @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
- warn_for_deprecated_arguments do |keywords|
43
- keywords << :slug if legacy_slug != NOT_GIVEN
44
- keywords << :size if legacy_size != NOT_GIVEN
45
- keywords << :format if legacy_format != NOT_GIVEN
46
- keywords << :set if legacy_set != NOT_GIVEN
47
- keywords << :bgset if legacy_bgset != NOT_GIVEN
48
- end
49
-
39
+ def image(slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
50
40
  raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
51
41
  raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)
52
42
 
@@ -54,7 +44,6 @@ module Faker
54
44
  bgset_query = "&bgset=#{bgset}" if bgset
55
45
  "https://robohash.org/#{slug}.#{format}?size=#{size}&set=#{set}#{bgset_query}"
56
46
  end
57
- # rubocop:enable Metrics/ParameterLists
58
47
  end
59
48
  end
60
49
  end
@@ -16,14 +16,10 @@ module Faker
16
16
  # Faker::Bank.account_number(digits: 13) #=> 673858237902
17
17
  #
18
18
  # @faker.version 1.9.1
19
- def account_number(legacy_digits = NOT_GIVEN, digits: 10)
20
- warn_for_deprecated_arguments do |keywords|
21
- keywords << :digits if legacy_digits != NOT_GIVEN
22
- end
23
-
19
+ def account_number(digits: 10)
24
20
  output = ''
25
21
 
26
- output += rand.to_s[2..-1] while output.length < digits
22
+ output += rand.to_s[2..] while output.length < digits
27
23
 
28
24
  output[0...digits]
29
25
  end
@@ -40,14 +36,10 @@ module Faker
40
36
  # Faker::Bank.iban(country_code: nil) #=> "DE45186738071857270067"
41
37
  #
42
38
  # @faker.version 1.7.0
43
- def iban(legacy_country_code = NOT_GIVEN, country_code: 'GB')
39
+ def iban(country_code: 'GB')
44
40
  # Each country has its own format for bank accounts
45
41
  # Many of them use letters in certain parts of the account
46
42
  # Using regex patterns we can create virtually any type of bank account
47
- warn_for_deprecated_arguments do |keywords|
48
- keywords << :country_code if legacy_country_code != NOT_GIVEN
49
- end
50
-
51
43
  country_code ||= iban_country_code
52
44
 
53
45
  begin
@@ -145,7 +137,7 @@ module Faker
145
137
  private
146
138
 
147
139
  def checksum(num_string)
148
- num_array = num_string.split('').map(&:to_i)
140
+ num_array = num_string.chars.map(&:to_i)
149
141
  (
150
142
  7 * (num_array[0] + num_array[3] + num_array[6]) +
151
143
  3 * (num_array[1] + num_array[4] + num_array[7]) +
@@ -166,15 +158,15 @@ module Faker
166
158
  end
167
159
 
168
160
  # Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
169
- # source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN
161
+ # source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits
170
162
  def iban_checksum(country_code, account)
171
163
  # Converts letters to numbers according the iban rules, A=10..Z=35
172
164
  account_to_number = "#{account}#{country_code}00".upcase.chars.map do |d|
173
165
  d =~ /[A-Z]/ ? (d.ord - 55).to_s : d
174
166
  end.join.to_i
175
167
 
176
- # This is answer to (iban_to_num + checksum) % 97 == 1
177
- checksum = (1 - account_to_number) % 97
168
+ # This is the correct answer to (iban_to_num + checksum) % 97 == 1
169
+ checksum = 98 - (account_to_number % 97)
178
170
 
179
171
  # Use leftpad to make the size always to 2
180
172
  checksum.to_s.rjust(2, '0')
@@ -194,8 +186,8 @@ module Faker
194
186
 
195
187
  def compile_fraction(routing_num)
196
188
  prefix = (1..50).to_a.map(&:to_s).sample
197
- numerator = routing_num.split('')[5..8].join.to_i.to_s
198
- denominator = routing_num.split('')[0..4].join.to_i.to_s
189
+ numerator = routing_num.chars[5..8].join.to_i.to_s
190
+ denominator = routing_num.chars[0..4].join.to_i.to_s
199
191
  "#{prefix}-#{numerator}/#{denominator}"
200
192
  end
201
193
 
@@ -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(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
18
+ def boolean(true_ratio: 0.5)
22
19
  (rand < true_ratio)
23
20
  end
24
21
  end
@@ -18,12 +18,7 @@ module Faker
18
18
  # Faker::ChileRut.rut(min_rut: 20890156, fixed: true) #=> 20890156
19
19
  #
20
20
  # @faker.version 1.9.2
21
- def rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 1, fixed: false)
22
- warn_for_deprecated_arguments do |keywords|
23
- keywords << :min_rut if legacy_min_rut != NOT_GIVEN
24
- keywords << :fixed if legacy_fixed != NOT_GIVEN
25
- end
26
-
21
+ def rut(min_rut: 1, fixed: false)
27
22
  @last_rut = fixed ? min_rut : rand_in_range(min_rut, 99_999_999)
28
23
  end
29
24
 
@@ -37,7 +32,7 @@ module Faker
37
32
  #
38
33
  # @faker.version 1.9.2
39
34
  def dv
40
- split_reversed_rut = @last_rut.to_s.reverse.split('')
35
+ split_reversed_rut = @last_rut.to_s.reverse.chars
41
36
  seq = [2, 3, 4, 5, 6, 7]
42
37
  i = 0
43
38
  digit_sum = split_reversed_rut.reduce(0) do |sum, n|
@@ -82,14 +77,13 @@ module Faker
82
77
  # Faker::ChileRut.full_rut(min_rut: 20890156) #=> "30686957-4"
83
78
  # Faker::ChileRut.full_rut(min_rut: 30686957, fixed: true) #=> "30686957-4"
84
79
  #
85
- # @faker.version 1.9.2
86
- def full_rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 0, fixed: false)
87
- warn_for_deprecated_arguments do |keywords|
88
- keywords << :min_rut if legacy_min_rut != NOT_GIVEN
89
- keywords << :fixed if legacy_fixed != NOT_GIVEN
80
+ # @faker.version next
81
+ def full_rut(min_rut: 0, fixed: false, formatted: false)
82
+ if formatted
83
+ "#{rut(min_rut: min_rut, fixed: fixed).to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1.').reverse}-#{dv}"
84
+ else
85
+ "#{rut(min_rut: min_rut, fixed: fixed)}-#{dv}"
90
86
  end
91
-
92
- "#{rut(min_rut: min_rut, fixed: fixed)}-#{dv}"
93
87
  end
94
88
 
95
89
  attr_reader :last_rut
@@ -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(legacy_base = NOT_GIVEN, base: 10)
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,11 +49,7 @@ module Faker
53
49
  # Faker::Code.ean #=> "9941880131907"
54
50
  #
55
51
  # @faker.version 2.2.0
56
- def ean(legacy_base = NOT_GIVEN, base: 13)
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
@@ -99,15 +91,10 @@ module Faker
99
91
  # Faker::Code.nric #=> "S6372958B"
100
92
  #
101
93
  # @faker.version 2.2.0
102
- def nric(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65)
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
96
  prefix = birthyear < 2000 ? 'S' : 'T'
110
- values = birthyear.to_s[-2..-1]
97
+ values = birthyear.to_s[-2..]
111
98
  values << regexify(/\d{5}/)
112
99
  check_alpha = generate_nric_check_alphabet(values, prefix)
113
100
  "#{prefix}#{values}#{check_alpha}"
@@ -206,7 +193,7 @@ module Faker
206
193
  str[len - 1] = (10 - (sum % 10)) % 10
207
194
 
208
195
  # Output the IMEI value.
209
- str.join('')
196
+ str.join
210
197
  end
211
198
 
212
199
  def generate_base10_isbn
@@ -222,20 +209,20 @@ module Faker
222
209
  end
223
210
 
224
211
  def sum(values)
225
- values.split(//).each_with_index.inject(0) do |sum, (value, index)|
212
+ values.chars.each_with_index.inject(0) do |sum, (value, index)|
226
213
  sum + yield(value, index)
227
214
  end
228
215
  end
229
216
 
230
217
  def generate_base8_ean
231
218
  values = regexify(/\d{7}/)
232
- check_digit = 10 - values.split(//).each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT8[i] } % 10
219
+ check_digit = 10 - values.chars.each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT8[i] } % 10
233
220
  values << (check_digit == 10 ? 0 : check_digit).to_s
234
221
  end
235
222
 
236
223
  def generate_base13_ean
237
224
  values = regexify(/\d{12}/)
238
- check_digit = 10 - values.split(//).each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT13[i] } % 10
225
+ check_digit = 10 - values.chars.each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT13[i] } % 10
239
226
  values << (check_digit == 10 ? 0 : check_digit).to_s
240
227
  end
241
228
 
@@ -243,13 +230,13 @@ module Faker
243
230
  EAN_CHECK_DIGIT13 = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3].freeze
244
231
 
245
232
  def rut_verificator_digit(rut)
246
- total = rut.to_s.rjust(8, '0').split(//).zip(%w[3 2 7 6 5 4 3 2]).collect { |a, b| a.to_i * b.to_i }.inject(:+)
233
+ 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(:+)
247
234
  (11 - total % 11).to_s.gsub(/10/, 'k').gsub(/11/, '0')
248
235
  end
249
236
 
250
237
  def generate_nric_check_alphabet(values, prefix)
251
238
  weight = %w[2 7 6 5 4 3 2]
252
- total = values.split(//).zip(weight).collect { |a, b| a.to_i * b.to_i }.inject(:+)
239
+ total = values.chars.zip(weight).collect { |a, b| a.to_i * b.to_i }.inject(:+)
253
240
  total += 4 if prefix == 'T'
254
241
  %w[A B C D E F G H I Z J][10 - total % 11]
255
242
  end
@@ -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 1.5.0
15
- def hex_color
16
- format('#%06x', (rand * 0xffffff))
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 1.5.0
60
- def hsl_color
61
- [sample((0..360).to_a), rand.round(2), rand.round(2)]
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
@@ -27,11 +27,7 @@ module Faker
27
27
  # Faker::Commerce.promotion_code(digits: 2) #=> "AmazingPrice57"
28
28
  #
29
29
  # @faker.version 1.7.0
30
- def promotion_code(legacy_digits = NOT_GIVEN, digits: 6)
31
- warn_for_deprecated_arguments do |keywords|
32
- keywords << :digits if legacy_digits != NOT_GIVEN
33
- end
34
-
30
+ def promotion_code(digits: 6)
35
31
  [
36
32
  fetch('commerce.promotion_code.adjective'),
37
33
  fetch('commerce.promotion_code.noun'),
@@ -52,12 +48,7 @@ module Faker
52
48
  # Faker::Commerce.department(max: 2, fixed_amount: true) #=> "Books & Tools"
53
49
  #
54
50
  # @faker.version 1.2.0
55
- def department(legacy_max = NOT_GIVEN, legacy_fixed_amount = NOT_GIVEN, max: 3, fixed_amount: false)
56
- warn_for_deprecated_arguments do |keywords|
57
- keywords << :max if legacy_max != NOT_GIVEN
58
- keywords << :fixed_amount if legacy_fixed_amount != NOT_GIVEN
59
- end
60
-
51
+ def department(max: 3, fixed_amount: false)
61
52
  num = max if fixed_amount
62
53
  num ||= 1 + rand(max)
63
54
 
@@ -112,12 +103,7 @@ module Faker
112
103
  # Faker::Commerce.price(range: 0..10.0, as_string: true) #=> "2.18"
113
104
  #
114
105
  # @faker.version 1.2.0
115
- def price(legacy_range = NOT_GIVEN, legacy_as_string = NOT_GIVEN, range: 0..100.0, as_string: false)
116
- warn_for_deprecated_arguments do |keywords|
117
- keywords << :range if legacy_range != NOT_GIVEN
118
- keywords << :as_string if legacy_as_string != NOT_GIVEN
119
- end
120
-
106
+ def price(range: 0..100.0, as_string: false)
121
107
  price = (rand(range) * 100).floor / 100.0
122
108
  if as_string
123
109
  price_parts = price.to_s.split('.')
@@ -296,7 +296,7 @@ module Faker
296
296
  result = Array.new(3) { rand(1..9) } + Array.new(7) { rand(10) }
297
297
  break if (weight_sum(result, weights) % 11) == result[9]
298
298
  end
299
- result.join('')
299
+ result.join
300
300
  end
301
301
 
302
302
  ##
@@ -309,11 +309,7 @@ module Faker
309
309
  #
310
310
  # @faker.version 1.9.1
311
311
  # Get a random Polish register of national economy number. More info https://pl.wikipedia.org/wiki/REGON
312
- def polish_register_of_national_economy(legacy_length = NOT_GIVEN, length: 9)
313
- warn_for_deprecated_arguments do |keywords|
314
- keywords << :length if legacy_length != NOT_GIVEN
315
- end
316
-
312
+ def polish_register_of_national_economy(length: 9)
317
313
  raise ArgumentError, 'Length should be 9 or 14' unless [9, 14].include? length
318
314
 
319
315
  random_digits = []
@@ -321,7 +317,7 @@ module Faker
321
317
  random_digits = Array.new(length) { rand(10) }
322
318
  break if collect_regon_sum(random_digits) == random_digits.last
323
319
  end
324
- random_digits.join('')
320
+ random_digits.join
325
321
  end
326
322
 
327
323
  ##
@@ -385,11 +381,7 @@ module Faker
385
381
  # Faker::Company.brazilian_company_number #=> "37205322000500"
386
382
  #
387
383
  # @faker.version 1.9.2
388
- def brazilian_company_number(legacy_formatted = NOT_GIVEN, formatted: false)
389
- warn_for_deprecated_arguments do |keywords|
390
- keywords << :formatted if legacy_formatted != NOT_GIVEN
391
- end
392
-
384
+ def brazilian_company_number(formatted: false)
393
385
  digits = Array.new(8) { Faker::Number.digit.to_i } + [0, 0, 0, Faker::Number.non_zero_digit.to_i]
394
386
 
395
387
  factors = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 6].cycle
@@ -459,7 +451,7 @@ module Faker
459
451
  def luhn_algorithm(number)
460
452
  multiplications = []
461
453
 
462
- number.to_s.reverse.split(//).each_with_index do |digit, i|
454
+ number.to_s.reverse.chars.each_with_index do |digit, i|
463
455
  multiplications << if i.even?
464
456
  digit.to_i * 2
465
457
  else
@@ -553,7 +545,7 @@ module Faker
553
545
  def spanish_cif_control_digit(organization_type, code)
554
546
  letters = %w[J A B C D E F G H I]
555
547
 
556
- control = code.split('').each_with_index.inject(0) do |sum, (value, index)|
548
+ control = code.chars.each_with_index.inject(0) do |sum, (value, index)|
557
549
  if (index + 1).even?
558
550
  sum + value.to_i
559
551
  else
@@ -16,11 +16,7 @@ module Faker
16
16
  # Faker::CryptoCoin.coin_name #=> "Bitcoin"
17
17
  #
18
18
  # @faker.version 1.9.2
19
- def coin_name(legacy_coin = NOT_GIVEN, coin: coin_array)
20
- warn_for_deprecated_arguments do |keywords|
21
- keywords << :coin if legacy_coin != NOT_GIVEN
22
- end
23
-
19
+ def coin_name(coin: coin_array)
24
20
  coin[COIN_NAME]
25
21
  end
26
22
 
@@ -33,11 +29,7 @@ module Faker
33
29
  # Faker::CryptoCoin.acronym #=> "BTC"
34
30
  #
35
31
  # @faker.version 1.9.2
36
- def acronym(legacy_coin = NOT_GIVEN, coin: coin_array)
37
- warn_for_deprecated_arguments do |keywords|
38
- keywords << :coin if legacy_coin != NOT_GIVEN
39
- end
40
-
32
+ def acronym(coin: coin_array)
41
33
  coin[ACRONYM]
42
34
  end
43
35
 
@@ -50,11 +42,7 @@ module Faker
50
42
  # Faker::CryptoCoin.url_logo #=> "https://i.imgur.com/EFz61Ei.png"
51
43
  #
52
44
  # @faker.version 1.9.2
53
- def url_logo(legacy_coin = NOT_GIVEN, coin: coin_array)
54
- warn_for_deprecated_arguments do |keywords|
55
- keywords << :coin if legacy_coin != NOT_GIVEN
56
- end
57
-
45
+ def url_logo(coin: coin_array)
58
46
  coin[URL_LOGO]
59
47
  end
60
48
 
@@ -17,20 +17,13 @@ module Faker
17
17
  # Faker::Date.between(from: 2.days.ago, to: Date.today) #=> #<Date: 2014-09-24>
18
18
  #
19
19
  # @faker.version 1.0.0
20
- def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from:, to:)
21
- warn_for_deprecated_arguments do |keywords|
22
- keywords << :from if legacy_from != NOT_GIVEN
23
- keywords << :to if legacy_to != NOT_GIVEN
24
- end
25
-
20
+ def between(from:, to:)
26
21
  from = get_date_object(from)
27
22
  to = get_date_object(to)
28
23
 
29
24
  Faker::Base.rand_in_range(from, to)
30
25
  end
31
26
 
32
- # rubocop:disable Metrics/ParameterLists
33
-
34
27
  ##
35
28
  # Produce a random date between two dates.
36
29
  #
@@ -46,17 +39,7 @@ module Faker
46
39
  # Faker::Date.between_except(from: 1.year.ago, to: 1.year.from_now, excepted: Date.today) #=> #<Date: 2014-10-03>
47
40
  #
48
41
  # @faker.version 1.6.2
49
- def between_except(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_excepted = NOT_GIVEN, from:, to:, excepted:)
50
- warn_for_deprecated_arguments do |keywords|
51
- keywords << :from if legacy_from != NOT_GIVEN
52
- end
53
- warn_for_deprecated_arguments do |keywords|
54
- keywords << :to if legacy_to != NOT_GIVEN
55
- end
56
- warn_for_deprecated_arguments do |keywords|
57
- keywords << :excepted if legacy_excepted != NOT_GIVEN
58
- end
59
-
42
+ def between_except(from:, to:, excepted:)
60
43
  raise ArgumentError, 'From date, to date and excepted date must not be the same' if from == to && to == excepted
61
44
 
62
45
  excepted = get_date_object(excepted)
@@ -66,7 +49,6 @@ module Faker
66
49
  break date.to_date if date != excepted
67
50
  end
68
51
  end
69
- # rubocop:enable Metrics/ParameterLists
70
52
 
71
53
  ##
72
54
  # Produce a random date in the future (up to N days).
@@ -78,11 +60,7 @@ module Faker
78
60
  # Faker::Date.forward(days: 23) #=> #<Date: 2014-10-03>
79
61
  #
80
62
  # @faker.version 1.0.0
81
- def forward(legacy_days = NOT_GIVEN, days: 365)
82
- warn_for_deprecated_arguments do |keywords|
83
- keywords << :days if legacy_days != NOT_GIVEN
84
- end
85
-
63
+ def forward(days: 365)
86
64
  from = ::Date.today + 1
87
65
  to = ::Date.today + days
88
66
 
@@ -99,11 +77,7 @@ module Faker
99
77
  # Faker::Date.backward(days: 14) #=> #<Date: 2019-09-12>
100
78
  #
101
79
  # @faker.version 1.0.0
102
- def backward(legacy_days = NOT_GIVEN, days: 365)
103
- warn_for_deprecated_arguments do |keywords|
104
- keywords << :days if legacy_days != NOT_GIVEN
105
- end
106
-
80
+ def backward(days: 365)
107
81
  from = ::Date.today - days
108
82
  to = ::Date.today - 1
109
83
 
@@ -121,14 +95,7 @@ module Faker
121
95
  # Faker::Date.birthday(min_age: 18, max_age: 65) #=> #<Date: 1986-03-28>
122
96
  #
123
97
  # @faker.version 1.4.3
124
- def birthday(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65)
125
- warn_for_deprecated_arguments do |keywords|
126
- keywords << :min_age if legacy_min_age != NOT_GIVEN
127
- end
128
- warn_for_deprecated_arguments do |keywords|
129
- keywords << :max_age if legacy_max_age != NOT_GIVEN
130
- end
131
-
98
+ def birthday(min_age: 18, max_age: 65)
132
99
  t = ::Date.today
133
100
 
134
101
  from = birthday_date(t, max_age)
@@ -80,11 +80,7 @@ module Faker
80
80
  # Faker::Demographic.height(unit: :imperial) #=> "6 ft, 2 in"
81
81
  #
82
82
  # @faker.version 1.7.3
83
- def height(legacy_unit = NOT_GIVEN, unit: :metric)
84
- warn_for_deprecated_arguments do |keywords|
85
- keywords << :unit if legacy_unit != NOT_GIVEN
86
- end
87
-
83
+ def height(unit: :metric)
88
84
  case unit
89
85
  when :imperial
90
86
  inches = rand_in_range(57, 86)
@@ -6,8 +6,6 @@ module Faker
6
6
  NI_CHANCE = 0.03 # NI Pop is about 3% of total UK population
7
7
 
8
8
  class << self
9
- # rubocop:disable Metrics/ParameterLists
10
-
11
9
  ##
12
10
  # Produces a random British driving licence number.
13
11
  #
@@ -25,14 +23,7 @@ module Faker
25
23
  # date_of_birth: Date.parse("1986-10-24")) #=> "OCARR815246J91HT"
26
24
  #
27
25
  # @faker.version 1.9.2
28
- def british_driving_licence(legacy_last_name = NOT_GIVEN, legacy_initials = NOT_GIVEN, legacy_gender = NOT_GIVEN, legacy_date_of_birth = NOT_GIVEN, last_name: Faker::Name.last_name, initials: Faker::Name.initials, gender: random_gender, date_of_birth: Faker::Date.birthday(min_age: 18, max_age: 65))
29
- warn_for_deprecated_arguments do |keywords|
30
- keywords << :last_name if legacy_last_name != NOT_GIVEN
31
- keywords << :initials if legacy_initials != NOT_GIVEN
32
- keywords << :gender if legacy_gender != NOT_GIVEN
33
- keywords << :date_of_birth if legacy_date_of_birth != NOT_GIVEN
34
- end
35
-
26
+ def british_driving_licence(last_name: Faker::Name.last_name, initials: Faker::Name.initials, gender: random_gender, date_of_birth: Faker::Date.birthday(min_age: 18, max_age: 65))
36
27
  [
37
28
  gb_licence_padding(last_name, 5),
38
29
  gb_licence_year(date_of_birth, gender),
@@ -40,7 +31,6 @@ module Faker
40
31
  gb_licence_checksum
41
32
  ].join
42
33
  end
43
- # rubocop:enable Metrics/ParameterLists
44
34
 
45
35
  ##
46
36
  # Produces a random Northern Irish licence number.