faker 2.2.0 → 2.5.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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +131 -15
  3. data/README.md +2 -2
  4. data/lib/faker.rb +34 -0
  5. data/lib/faker/blockchain/aeternity.rb +70 -0
  6. data/lib/faker/blockchain/bitcoin.rb +26 -0
  7. data/lib/faker/blockchain/ethereum.rb +10 -0
  8. data/lib/faker/blockchain/tezos.rb +62 -6
  9. data/lib/faker/books/book.rb +36 -0
  10. data/lib/faker/books/culture_series.rb +49 -0
  11. data/lib/faker/books/dune.rb +60 -9
  12. data/lib/faker/books/lovecraft.rb +189 -33
  13. data/lib/faker/creature/animal.rb +9 -0
  14. data/lib/faker/creature/cat.rb +27 -0
  15. data/lib/faker/creature/dog.rb +72 -0
  16. data/lib/faker/creature/horse.rb +18 -0
  17. data/lib/faker/default/address.rb +10 -15
  18. data/lib/faker/default/alphanumeric.rb +29 -18
  19. data/lib/faker/default/app.rb +50 -11
  20. data/lib/faker/default/appliance.rb +18 -0
  21. data/lib/faker/default/artist.rb +9 -0
  22. data/lib/faker/default/avatar.rb +38 -19
  23. data/lib/faker/default/bank.rb +4 -6
  24. data/lib/faker/default/boolean.rb +14 -4
  25. data/lib/faker/default/chile_rut.rb +6 -14
  26. data/lib/faker/default/chuck_norris.rb +1 -1
  27. data/lib/faker/default/code.rb +7 -13
  28. data/lib/faker/default/commerce.rb +8 -17
  29. data/lib/faker/default/company.rb +4 -6
  30. data/lib/faker/default/crypto_coin.rb +6 -9
  31. data/lib/faker/default/date.rb +76 -30
  32. data/lib/faker/default/demographic.rb +2 -3
  33. data/lib/faker/default/dessert.rb +27 -0
  34. data/lib/faker/default/device.rb +54 -0
  35. data/lib/faker/default/driving_licence.rb +5 -15
  36. data/lib/faker/default/electrical_components.rb +27 -0
  37. data/lib/faker/default/file.rb +9 -26
  38. data/lib/faker/default/fillmurray.rb +4 -11
  39. data/lib/faker/default/finance.rb +2 -3
  40. data/lib/faker/default/gender.rb +18 -0
  41. data/lib/faker/default/greek_philosophers.rb +18 -0
  42. data/lib/faker/default/hacker.rb +59 -1
  43. data/lib/faker/default/hipster.rb +21 -54
  44. data/lib/faker/default/house.rb +18 -0
  45. data/lib/faker/default/id_number.rb +5 -7
  46. data/lib/faker/default/industry_segments.rb +36 -0
  47. data/lib/faker/default/internet.rb +49 -76
  48. data/lib/faker/default/invoice.rb +7 -13
  49. data/lib/faker/default/json.rb +9 -16
  50. data/lib/faker/default/lorem.rb +38 -77
  51. data/lib/faker/default/lorem_flickr.rb +17 -48
  52. data/lib/faker/default/lorem_pixel.rb +7 -23
  53. data/lib/faker/default/markdown.rb +3 -7
  54. data/lib/faker/default/marketing.rb +9 -0
  55. data/lib/faker/default/measurement.rb +16 -24
  56. data/lib/faker/default/military.rb +45 -0
  57. data/lib/faker/default/name.rb +2 -3
  58. data/lib/faker/default/nation.rb +48 -5
  59. data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
  60. data/lib/faker/default/nhs.rb +2 -3
  61. data/lib/faker/default/number.rb +150 -51
  62. data/lib/faker/default/omniauth.rb +67 -63
  63. data/lib/faker/default/phone_number.rb +2 -3
  64. data/lib/faker/default/placeholdit.rb +6 -19
  65. data/lib/faker/default/programming_language.rb +18 -0
  66. data/lib/faker/default/relationship.rb +2 -3
  67. data/lib/faker/default/restaurant.rb +54 -2
  68. data/lib/faker/default/science.rb +27 -0
  69. data/lib/faker/default/source.rb +51 -14
  70. data/lib/faker/default/string.rb +2 -3
  71. data/lib/faker/default/stripe.rb +8 -12
  72. data/lib/faker/default/subscription.rb +45 -0
  73. data/lib/faker/default/superhero.rb +45 -0
  74. data/lib/faker/default/time.rb +102 -56
  75. data/lib/faker/default/twitter.rb +23 -32
  76. data/lib/faker/default/types.rb +12 -23
  77. data/lib/faker/default/vehicle.rb +8 -14
  78. data/lib/faker/default/world_cup.rb +5 -10
  79. data/lib/faker/games/dota.rb +49 -3
  80. data/lib/faker/games/elder_scrolls.rb +72 -0
  81. data/lib/faker/games/fallout.rb +37 -0
  82. data/lib/faker/games/game.rb +27 -0
  83. data/lib/faker/games/half_life.rb +27 -0
  84. data/lib/faker/games/heroes.rb +27 -0
  85. data/lib/faker/games/heroes_of_the_storm.rb +36 -0
  86. data/lib/faker/games/league_of_legends.rb +54 -0
  87. data/lib/faker/games/myst.rb +45 -0
  88. data/lib/faker/games/overwatch.rb +27 -0
  89. data/lib/faker/games/pokemon.rb +27 -0
  90. data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
  91. data/lib/faker/games/super_smash_bros.rb +18 -0
  92. data/lib/faker/games/witcher.rb +54 -0
  93. data/lib/faker/games/world_of_warcraft.rb +18 -0
  94. data/lib/faker/games/zelda.rb +37 -1
  95. data/lib/faker/japanese_media/dragon_ball.rb +9 -0
  96. data/lib/faker/japanese_media/one_piece.rb +54 -0
  97. data/lib/faker/japanese_media/sword_art_online.rb +36 -0
  98. data/lib/faker/movies/back_to_the_future.rb +28 -0
  99. data/lib/faker/movies/ghostbusters.rb +28 -0
  100. data/lib/faker/movies/harry_potter.rb +54 -0
  101. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
  102. data/lib/faker/movies/hobbit.rb +37 -0
  103. data/lib/faker/movies/lebowski.rb +27 -0
  104. data/lib/faker/movies/lord_of_the_rings.rb +28 -0
  105. data/lib/faker/movies/movie.rb +9 -0
  106. data/lib/faker/movies/princess_bride.rb +19 -0
  107. data/lib/faker/movies/star_wars.rb +97 -6
  108. data/lib/faker/movies/v_for_vendetta.rb +29 -0
  109. data/lib/faker/music/grateful_dead.rb +18 -0
  110. data/lib/faker/music/phish.rb +9 -0
  111. data/lib/faker/music/rock_band.rb +9 -0
  112. data/lib/faker/music/umphreys_mcgee.rb +9 -0
  113. data/lib/faker/sports/basketball.rb +36 -0
  114. data/lib/faker/sports/football.rb +45 -0
  115. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +9 -0
  116. data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
  117. data/lib/faker/tv_shows/breaking_bad.rb +18 -0
  118. data/lib/faker/tv_shows/buffy.rb +45 -0
  119. data/lib/faker/tv_shows/community.rb +19 -0
  120. data/lib/faker/tv_shows/dr_who.rb +78 -2
  121. data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
  122. data/lib/faker/tv_shows/family_guy.rb +28 -0
  123. data/lib/faker/tv_shows/friends.rb +27 -0
  124. data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
  125. data/lib/faker/tv_shows/hey_arnold.rb +27 -0
  126. data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
  127. data/lib/faker/tv_shows/michael_scott.rb +13 -0
  128. data/lib/faker/tv_shows/new_girl.rb +19 -0
  129. data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
  130. data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
  131. data/lib/faker/tv_shows/ru_paul.rb +18 -0
  132. data/lib/faker/tv_shows/seinfeld.rb +28 -0
  133. data/lib/faker/tv_shows/silicon_valley.rb +75 -0
  134. data/lib/faker/tv_shows/simpsons.rb +28 -0
  135. data/lib/faker/tv_shows/south_park.rb +19 -0
  136. data/lib/faker/tv_shows/star_trek.rb +36 -0
  137. data/lib/faker/tv_shows/stargate.rb +28 -0
  138. data/lib/faker/tv_shows/stranger_things.rb +19 -0
  139. data/lib/faker/tv_shows/the_expanse.rb +36 -0
  140. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +28 -0
  141. data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
  142. data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
  143. data/lib/faker/tv_shows/twin_peaks.rb +28 -0
  144. data/lib/faker/tv_shows/venture_bros.rb +38 -0
  145. data/lib/faker/version.rb +1 -1
  146. data/lib/locales/en-CA.yml +1 -1
  147. data/lib/locales/en-TH.yml +360 -0
  148. data/lib/locales/en/color.yml +1 -1
  149. data/lib/locales/en/dr_who.yml +1 -1
  150. data/lib/locales/en/science.yml +1 -1
  151. data/lib/locales/ja.yml +8 -9
  152. data/lib/locales/th.yml +380 -0
  153. metadata +33 -14
@@ -8,17 +8,10 @@ module Faker
8
8
  # rubocop:disable Metrics/ParameterLists
9
9
  def image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: [], match_all: false)
10
10
  # rubocop:enable Metrics/ParameterLists
11
- if legacy_size != NOT_GIVEN
12
- warn_with_uplevel 'Passing `size` with the 1st argument of `LoremFlickr.image` is deprecated. Use keyword argument like `LoremFlickr.image(size: ...)` instead.', uplevel: 1
13
- size = legacy_size
14
- end
15
- if legacy_search_terms != NOT_GIVEN
16
- warn_with_uplevel 'Passing `search_terms` with the 2nd argument of `LoremFlickr.image` is deprecated. Use keyword argument like `LoremFlickr.image(search_terms: ...)` instead.', uplevel: 1
17
- search_terms = legacy_search_terms
18
- end
19
- if legacy_match_all != NOT_GIVEN
20
- warn_with_uplevel 'Passing `match_all` with the 3rd argument of `LoremFlickr.image` is deprecated. Use keyword argument like `LoremFlickr.image(match_all: ...)` instead.', uplevel: 1
21
- match_all = legacy_match_all
11
+ warn_for_deprecated_arguments do |keywords|
12
+ keywords << :size if legacy_size != NOT_GIVEN
13
+ keywords << :search_terms if legacy_search_terms != NOT_GIVEN
14
+ keywords << :match_all if legacy_match_all != NOT_GIVEN
22
15
  end
23
16
 
24
17
  build_url(size, nil, search_terms, match_all)
@@ -27,17 +20,10 @@ module Faker
27
20
  # rubocop:disable Metrics/ParameterLists
28
21
  def grayscale_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
29
22
  # rubocop:enable Metrics/ParameterLists
30
- if legacy_size != NOT_GIVEN
31
- warn_with_uplevel 'Passing `size` with the 1st argument of `LoremFlickr.grayscale_image` is deprecated. Use keyword argument like `LoremFlickr.grayscale_image(size: ...)` instead.', uplevel: 1
32
- size = legacy_size
33
- end
34
- if legacy_search_terms != NOT_GIVEN
35
- warn_with_uplevel 'Passing `search_terms` with the 2nd argument of `LoremFlickr.grayscale_image` is deprecated. Use keyword argument like `LoremFlickr.grayscale_image(search_terms: ...)` instead.', uplevel: 1
36
- search_terms = legacy_search_terms
37
- end
38
- if legacy_match_all != NOT_GIVEN
39
- warn_with_uplevel 'Passing `match_all` with the 3rd argument of `LoremFlickr.grayscale_image` is deprecated. Use keyword argument like `LoremFlickr.grayscale_image(match_all: ...)` instead.', uplevel: 1
40
- match_all = legacy_match_all
23
+ warn_for_deprecated_arguments do |keywords|
24
+ keywords << :size if legacy_size != NOT_GIVEN
25
+ keywords << :search_terms if legacy_search_terms != NOT_GIVEN
26
+ keywords << :match_all if legacy_match_all != NOT_GIVEN
41
27
  end
42
28
 
43
29
  raise ArgumentError, 'Search terms must be specified for grayscale images' unless search_terms.any?
@@ -48,17 +34,10 @@ module Faker
48
34
  # rubocop:disable Metrics/ParameterLists
49
35
  def pixelated_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
50
36
  # rubocop:enable Metrics/ParameterLists
51
- if legacy_size != NOT_GIVEN
52
- warn_with_uplevel 'Passing `size` with the 1st argument of `LoremFlickr.pixelated_image` is deprecated. Use keyword argument like `LoremFlickr.pixelated_image(size: ...)` instead.', uplevel: 1
53
- size = legacy_size
54
- end
55
- if legacy_search_terms != NOT_GIVEN
56
- warn_with_uplevel 'Passing `search_terms` with the 2nd argument of `LoremFlickr.pixelated_image` is deprecated. Use keyword argument like `LoremFlickr.pixelated_image(search_terms: ...)` instead.', uplevel: 1
57
- search_terms = legacy_search_terms
58
- end
59
- if legacy_match_all != NOT_GIVEN
60
- warn_with_uplevel 'Passing `match_all` with the 3rd argument of `LoremFlickr.pixelated_image` is deprecated. Use keyword argument like `LoremFlickr.pixelated_image(match_all: ...)` instead.', uplevel: 1
61
- match_all = legacy_match_all
37
+ warn_for_deprecated_arguments do |keywords|
38
+ keywords << :size if legacy_size != NOT_GIVEN
39
+ keywords << :search_terms if legacy_search_terms != NOT_GIVEN
40
+ keywords << :match_all if legacy_match_all != NOT_GIVEN
62
41
  end
63
42
 
64
43
  raise ArgumentError, 'Search terms must be specified for pixelated images' unless search_terms.any?
@@ -69,21 +48,11 @@ module Faker
69
48
  # rubocop:disable Metrics/ParameterLists
70
49
  def colorized_image(legacy_size = NOT_GIVEN, legacy_color = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
71
50
  # rubocop:enable Metrics/ParameterLists
72
- if legacy_size != NOT_GIVEN
73
- warn_with_uplevel 'Passing `size` with the 1st argument of `LoremFlickr.colorized_image` is deprecated. Use keyword argument like `LoremFlickr.colorized_image(size: ...)` instead.', uplevel: 1
74
- size = legacy_size
75
- end
76
- if legacy_color != NOT_GIVEN
77
- warn_with_uplevel 'Passing `color` with the 2nd argument of `LoremFlickr.colorized_image` is deprecated. Use keyword argument like `LoremFlickr.colorized_image(color: ...)` instead.', uplevel: 1
78
- color = legacy_color
79
- end
80
- if legacy_search_terms != NOT_GIVEN
81
- warn_with_uplevel 'Passing `search_terms` with the 3rd argument of `LoremFlickr.colorized_image` is deprecated. Use keyword argument like `LoremFlickr.colorized_image(search_terms: ...)` instead.', uplevel: 1
82
- search_terms = legacy_search_terms
83
- end
84
- if legacy_match_all != NOT_GIVEN
85
- warn_with_uplevel 'Passing `match_all` with the 4th argument of `LoremFlickr.colorized_image` is deprecated. Use keyword argument like `LoremFlickr.colorized_image(match_all: ...)` instead.', uplevel: 1
86
- match_all = legacy_match_all
51
+ warn_for_deprecated_arguments do |keywords|
52
+ keywords << :size if legacy_size != NOT_GIVEN
53
+ keywords << :color if legacy_color != NOT_GIVEN
54
+ keywords << :search_terms if legacy_search_terms != NOT_GIVEN
55
+ keywords << :match_all if legacy_match_all != NOT_GIVEN
87
56
  end
88
57
 
89
58
  raise ArgumentError, 'Search terms must be specified for colorized images' unless search_terms.any?
@@ -19,29 +19,13 @@ module Faker
19
19
 
20
20
  # rubocop:disable Metrics/ParameterLists
21
21
  def image(legacy_size = NOT_GIVEN, legacy_is_gray = NOT_GIVEN, legacy_category = NOT_GIVEN, legacy_number = NOT_GIVEN, legacy_text = NOT_GIVEN, legacy_secure = NOT_GIVEN, size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
22
- if legacy_size != NOT_GIVEN
23
- warn_with_uplevel 'Passing `size` with the 1st argument of `LoremPixel.image` is deprecated. Use keyword argument like `LoremPixel.image(size: ...)` instead.', uplevel: 1
24
- size = legacy_size
25
- end
26
- if legacy_is_gray != NOT_GIVEN
27
- warn_with_uplevel 'Passing `is_gray` with the 2nd argument of `LoremPixel.image` is deprecated. Use keyword argument like `LoremPixel.image(is_gray: ...)` instead.', uplevel: 1
28
- is_gray = legacy_is_gray
29
- end
30
- if legacy_category != NOT_GIVEN
31
- warn_with_uplevel 'Passing `category` with the 3rd argument of `LoremPixel.image` is deprecated. Use keyword argument like `LoremPixel.image(category: ...)` instead.', uplevel: 1
32
- category = legacy_category
33
- end
34
- if legacy_number != NOT_GIVEN
35
- warn_with_uplevel 'Passing `number` with the 4th argument of `LoremPixel.image` is deprecated. Use keyword argument like `LoremPixel.image(number: ...)` instead.', uplevel: 1
36
- number = legacy_number
37
- end
38
- if legacy_text != NOT_GIVEN
39
- warn_with_uplevel 'Passing `text` with the 5th argument of `LoremPixel.image` is deprecated. Use keyword argument like `LoremPixel.image(text: ...)` instead.', uplevel: 1
40
- text = legacy_text
41
- end
42
- if legacy_secure != NOT_GIVEN
43
- warn_with_uplevel 'Passing `secure` with the 6th argument of `LoremPixel.image` is deprecated. Use keyword argument like `LoremPixel.image(secure: ...)` instead.', uplevel: 1
44
- secure = legacy_secure
22
+ warn_for_deprecated_arguments do |keywords|
23
+ keywords << :size if legacy_size != NOT_GIVEN
24
+ keywords << :is_gray if legacy_is_gray != NOT_GIVEN
25
+ keywords << :category if legacy_category != NOT_GIVEN
26
+ keywords << :number if legacy_number != NOT_GIVEN
27
+ keywords << :text if legacy_text != NOT_GIVEN
28
+ keywords << :secure if legacy_secure != NOT_GIVEN
45
29
  end
46
30
 
47
31
  raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
@@ -60,13 +60,9 @@ module Faker
60
60
  end
61
61
 
62
62
  def sandwich(legacy_sentences = NOT_GIVEN, legacy_repeat = NOT_GIVEN, sentences: 3, repeat: 1)
63
- if legacy_sentences != NOT_GIVEN
64
- warn_with_uplevel 'Passing `sentences` with the 1st argument of `Markdown.sandwich` is deprecated. Use keyword argument like `Markdown.sandwich(sentences: ...)` instead.', uplevel: 1
65
- sentences = legacy_sentences
66
- end
67
- if legacy_repeat != NOT_GIVEN
68
- warn_with_uplevel 'Passing `repeat` with the 2nd argument of `Markdown.sandwich` is deprecated. Use keyword argument like `Markdown.sandwich(repeat: ...)` instead.', uplevel: 1
69
- repeat = legacy_repeat
63
+ warn_for_deprecated_arguments do |keywords|
64
+ keywords << :sentences if legacy_sentences != NOT_GIVEN
65
+ keywords << :repeat if legacy_repeat != NOT_GIVEN
70
66
  end
71
67
 
72
68
  text_block = []
@@ -5,6 +5,15 @@ module Faker
5
5
  flexible :marketing
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces the name of a video game console or platform.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Marketing.buzzwords #=> "rubber meets the road"
15
+ #
16
+ # @faker.version 1.9.4
8
17
  def buzzwords
9
18
  fetch('marketing.buzzwords')
10
19
  end
@@ -7,72 +7,64 @@ module Faker
7
7
  NONE = 'none'
8
8
 
9
9
  def height(legacy_amount = NOT_GIVEN, amount: rand(10))
10
- if legacy_amount != NOT_GIVEN
11
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.height` is deprecated. Use keyword argument like `Measurement.height(amount: ...)` instead.', uplevel: 1
12
- amount = legacy_amount
10
+ warn_for_deprecated_arguments do |keywords|
11
+ keywords << :amount if legacy_amount != NOT_GIVEN
13
12
  end
14
13
 
15
14
  define_measurement_locale(amount, 'height')
16
15
  end
17
16
 
18
17
  def length(legacy_amount = NOT_GIVEN, amount: rand(10))
19
- if legacy_amount != NOT_GIVEN
20
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.length` is deprecated. Use keyword argument like `Measurement.length(amount: ...)` instead.', uplevel: 1
21
- amount = legacy_amount
18
+ warn_for_deprecated_arguments do |keywords|
19
+ keywords << :amount if legacy_amount != NOT_GIVEN
22
20
  end
23
21
 
24
22
  define_measurement_locale(amount, 'length')
25
23
  end
26
24
 
27
25
  def volume(legacy_amount = NOT_GIVEN, amount: rand(10))
28
- if legacy_amount != NOT_GIVEN
29
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.volume` is deprecated. Use keyword argument like `Measurement.volume(amount: ...)` instead.', uplevel: 1
30
- amount = legacy_amount
26
+ warn_for_deprecated_arguments do |keywords|
27
+ keywords << :amount if legacy_amount != NOT_GIVEN
31
28
  end
32
29
 
33
30
  define_measurement_locale(amount, 'volume')
34
31
  end
35
32
 
36
33
  def weight(legacy_amount = NOT_GIVEN, amount: rand(10))
37
- if legacy_amount != NOT_GIVEN
38
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.weight` is deprecated. Use keyword argument like `Measurement.weight(amount: ...)` instead.', uplevel: 1
39
- amount = legacy_amount
34
+ warn_for_deprecated_arguments do |keywords|
35
+ keywords << :amount if legacy_amount != NOT_GIVEN
40
36
  end
41
37
 
42
38
  define_measurement_locale(amount, 'weight')
43
39
  end
44
40
 
45
41
  def metric_height(legacy_amount = NOT_GIVEN, amount: rand(10))
46
- if legacy_amount != NOT_GIVEN
47
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.metric_height` is deprecated. Use keyword argument like `Measurement.metric_height(amount: ...)` instead.', uplevel: 1
48
- amount = legacy_amount
42
+ warn_for_deprecated_arguments do |keywords|
43
+ keywords << :amount if legacy_amount != NOT_GIVEN
49
44
  end
50
45
 
51
46
  define_measurement_locale(amount, 'metric_height')
52
47
  end
53
48
 
54
49
  def metric_length(legacy_amount = NOT_GIVEN, amount: rand(10))
55
- if legacy_amount != NOT_GIVEN
56
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.metric_length` is deprecated. Use keyword argument like `Measurement.metric_length(amount: ...)` instead.', uplevel: 1
57
- amount = legacy_amount
50
+ warn_for_deprecated_arguments do |keywords|
51
+ keywords << :amount if legacy_amount != NOT_GIVEN
58
52
  end
59
53
 
60
54
  define_measurement_locale(amount, 'metric_length')
61
55
  end
62
56
 
63
57
  def metric_volume(legacy_amount = NOT_GIVEN, amount: rand(10))
64
- if legacy_amount != NOT_GIVEN
65
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.metric_volume` is deprecated. Use keyword argument like `Measurement.metric_volume(amount: ...)` instead.', uplevel: 1
66
- amount = legacy_amount
58
+ warn_for_deprecated_arguments do |keywords|
59
+ keywords << :amount if legacy_amount != NOT_GIVEN
67
60
  end
68
61
 
69
62
  define_measurement_locale(amount, 'metric_volume')
70
63
  end
71
64
 
72
65
  def metric_weight(legacy_amount = NOT_GIVEN, amount: rand(10))
73
- if legacy_amount != NOT_GIVEN
74
- warn_with_uplevel 'Passing `amount` with the 1st argument of `Measurement.metric_weight` is deprecated. Use keyword argument like `Measurement.metric_weight(amount: ...)` instead.', uplevel: 1
75
- amount = legacy_amount
66
+ warn_for_deprecated_arguments do |keywords|
67
+ keywords << :amount if legacy_amount != NOT_GIVEN
76
68
  end
77
69
 
78
70
  define_measurement_locale(amount, 'metric_weight')
@@ -3,22 +3,67 @@
3
3
  module Faker
4
4
  class Military < Base
5
5
  class << self
6
+ ##
7
+ # Produces a rank in the U.S. Army.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Military.army_rank #=> "Staff Sergeant"
13
+ #
14
+ # @faker.version 1.9.0
6
15
  def army_rank
7
16
  fetch('military.army_rank')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces a rank in the U.S. Marines.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Military.marines_rank #=> "Gunnery Sergeant"
26
+ #
27
+ # @faker.version 1.9.0
10
28
  def marines_rank
11
29
  fetch('military.marines_rank')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces a rank in the U.S. Navy.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Military.navy_rank #=> "Seaman"
39
+ #
40
+ # @faker.version 1.9.0
14
41
  def navy_rank
15
42
  fetch('military.navy_rank')
16
43
  end
17
44
 
45
+ ##
46
+ # Produces a rank in the U.S. Air Force.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Military.air_force_rank #=> "Captain"
52
+ #
53
+ # @faker.version 1.9.0
18
54
  def air_force_rank
19
55
  fetch('military.air_force_rank')
20
56
  end
21
57
 
58
+ ##
59
+ # Produces a U.S. Department of Defense Paygrade.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Military.dod_paygrade #=> "E-6"
65
+ #
66
+ # @faker.version 1.9.0
22
67
  def dod_paygrade
23
68
  fetch('military.dod_paygrade')
24
69
  end
@@ -47,9 +47,8 @@ module Faker
47
47
  end
48
48
 
49
49
  def initials(legacy_number = NOT_GIVEN, number: 3)
50
- if legacy_number != NOT_GIVEN
51
- warn_with_uplevel 'Passing `number` with the 1st argument of `Name.initials` is deprecated. Use keyword argument like `Name.initials(number: ...)` instead.', uplevel: 1
52
- number = legacy_number
50
+ warn_for_deprecated_arguments do |keywords|
51
+ keywords << :number if legacy_number != NOT_GIVEN
53
52
  end
54
53
 
55
54
  (0...number).map { rand(65..90).chr }.join
@@ -4,27 +4,70 @@ module Faker
4
4
  class Nation < Base
5
5
  flexible :nation
6
6
  class << self
7
- # Fetch random nationality
7
+ ##
8
+ # Produces a random nationality.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Nation.nationality #=> "Nepalese"
14
+ #
15
+ # @faker.version 1.9.0
8
16
  def nationality
9
17
  fetch('nation.nationality')
10
18
  end
11
19
 
12
- # Fetch random national flag emoji
20
+ # rubocop:disable Style/AsciiComments
21
+
22
+ ##
23
+ # Produces a random national flag emoji.
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::Nation.flag #=> "🇫🇮"
29
+ #
30
+ # @faker.version 1.9.0
13
31
  def flag
14
32
  sample(translate('faker.nation.flag')).pack('C*').force_encoding('utf-8')
15
33
  end
34
+ # rubocop:enable Style/AsciiComments
16
35
 
17
- # Fetch random language
36
+ ##
37
+ # Produces a random national language.
38
+ #
39
+ # @return [String]
40
+ #
41
+ # @example
42
+ # Faker::Nation.language #=> "Nepali"
43
+ #
44
+ # @faker.version 1.9.0
18
45
  def language
19
46
  fetch('nation.language')
20
47
  end
21
48
 
22
- # Fetch random capital city
49
+ ##
50
+ # Produces a random capital city.
51
+ #
52
+ # @return [String]
53
+ #
54
+ # @example
55
+ # Faker::Nation.capital_city #=> "Kathmandu"
56
+ #
57
+ # @faker.version 1.9.0
23
58
  def capital_city
24
59
  fetch('nation.capital_city')
25
60
  end
26
61
 
27
- # Fetch random natinal sport
62
+ ##
63
+ # Produces a random national sport.
64
+ #
65
+ # @return [String]
66
+ #
67
+ # @example
68
+ # Faker::Nation.national_sport #=> "dandi biyo"
69
+ #
70
+ # @faker.version 1.9.0
28
71
  def national_sport
29
72
  fetch('team.sport')
30
73
  end
@@ -3,6 +3,15 @@
3
3
  module Faker
4
4
  class NatoPhoneticAlphabet < Base
5
5
  class << self
6
+ ##
7
+ # Produces a code word from the NATO phonetic alphabet.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::NatoPhoneticAlphabet.code_word #=> "Hotel"
13
+ #
14
+ # @faker.version 1.9.0
6
15
  def code_word
7
16
  fetch('nato_phonetic_alphabet.code_word')
8
17
  end
@@ -16,9 +16,8 @@ module Faker
16
16
  end
17
17
 
18
18
  def check_digit(legacy_number = NOT_GIVEN, number: 0)
19
- if legacy_number != NOT_GIVEN
20
- warn_with_uplevel 'Passing `number` with the 1st argument of `NationalHealthService.check_digit` is deprecated. Use keyword argument like `NationalHealthService.check_digit(number: ...)` instead.', uplevel: 1
21
- number = legacy_number
19
+ warn_for_deprecated_arguments do |keywords|
20
+ keywords << :number if legacy_number != NOT_GIVEN
22
21
  end
23
22
 
24
23
  sum = 0
@@ -3,32 +3,59 @@
3
3
  module Faker
4
4
  class Number < Base
5
5
  class << self
6
+ ##
7
+ # Produce a random number.
8
+ #
9
+ # @param digits [Integer] Number of digits that the generated number should have.
10
+ # @return [Integer]
11
+ #
12
+ # @example
13
+ # Faker::Number.number(digits: 10) #=> 1968353479
14
+ #
15
+ # @faker.version 1.0.0
6
16
  def number(legacy_digits = NOT_GIVEN, digits: 10)
7
- if legacy_digits != NOT_GIVEN
8
- warn_with_uplevel 'Passing `digits` with the 1st argument of `Number.number` is deprecated. Use keyword argument like `Number.number(digits: ...)` instead.', uplevel: 1
9
- digits = legacy_digits
17
+ warn_for_deprecated_arguments do |keywords|
18
+ keywords << :digits if legacy_digits != NOT_GIVEN
10
19
  end
11
20
 
12
21
  return if digits < 1
13
- return 0 if digits == 1
22
+ return rand(0..9).round if digits == 1
14
23
 
15
24
  # Ensure the first digit is not zero
16
25
  ([non_zero_digit] + generate(digits - 1)).join.to_i
17
26
  end
18
27
 
28
+ ##
29
+ # Produce a random number with a leading zero.
30
+ #
31
+ # @param digits [Integer] Number of digits that the generated number should have.
32
+ # @return [String]
33
+ #
34
+ # @example
35
+ # Faker::Number.leading_zero_number(digits: 10) #=> "0669336915"
36
+ #
37
+ # @faker.version 1.0.0
19
38
  def leading_zero_number(legacy_digits = NOT_GIVEN, digits: 10)
20
- if legacy_digits != NOT_GIVEN
21
- warn_with_uplevel 'Passing `digits` with the 1st argument of `Number.leading_zero_number` is deprecated. Use keyword argument like `Number.leading_zero_number(digits: ...)` instead.', uplevel: 1
22
- digits = legacy_digits
39
+ warn_for_deprecated_arguments do |keywords|
40
+ keywords << :digits if legacy_digits != NOT_GIVEN
23
41
  end
24
42
 
25
43
  '0' + (2..digits).collect { digit }.join
26
44
  end
27
45
 
46
+ ##
47
+ # Produce a number with a number of digits, preserves leading zeroes.
48
+ #
49
+ # @param digits [Integer] Number of digits that the generated number should have.
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::Number.decimal_part(digits: 2) #=> "09"
54
+ #
55
+ # @faker.version 1.0.0
28
56
  def decimal_part(legacy_digits = NOT_GIVEN, digits: 10)
29
- if legacy_digits != NOT_GIVEN
30
- warn_with_uplevel 'Passing `digits` with the 1st argument of `Number.decimal_part` is deprecated. Use keyword argument like `Number.decimal_part(digits: ...)` instead.', uplevel: 1
31
- digits = legacy_digits
57
+ warn_for_deprecated_arguments do |keywords|
58
+ keywords << :digits if legacy_digits != NOT_GIVEN
32
59
  end
33
60
 
34
61
  num = ''
@@ -39,14 +66,22 @@ module Faker
39
66
  leading_zero_number(digits: digits) + num.to_s
40
67
  end
41
68
 
69
+ ##
70
+ # Produces a float.
71
+ #
72
+ # @param l_digits [Integer] Number of digits that the generated decimal should have to the left of the decimal point.
73
+ # @param r_digits [Integer] Number of digits that the generated decimal should have to the right of the decimal point.
74
+ # @return [Float]
75
+ #
76
+ # @example
77
+ # Faker::Number.decimal(l_digits: 2) #=> 11.88
78
+ # Faker::Number.decimal(l_digits: 3, r_digits: 3) #=> 181.843
79
+ #
80
+ # @faker.version 1.0.0
42
81
  def decimal(legacy_l_digits = NOT_GIVEN, legacy_r_digits = NOT_GIVEN, l_digits: 5, r_digits: 2)
43
- if legacy_l_digits != NOT_GIVEN
44
- warn_with_uplevel 'Passing `l_digits` with the 1st argument of `Number.decimal` is deprecated. Use keyword argument like `Number.decimal(l_digits: ...)` instead.', uplevel: 1
45
- l_digits = legacy_l_digits
46
- end
47
- if legacy_r_digits != NOT_GIVEN
48
- warn_with_uplevel 'Passing `r_digits` with the 2nd argument of `Number.decimal` is deprecated. Use keyword argument like `Number.decimal(r_digits: ...)` instead.', uplevel: 1
49
- r_digits = legacy_r_digits
82
+ warn_for_deprecated_arguments do |keywords|
83
+ keywords << :l_digits if legacy_l_digits != NOT_GIVEN
84
+ keywords << :r_digits if legacy_r_digits != NOT_GIVEN
50
85
  end
51
86
 
52
87
  l_d = number(digits: l_digits)
@@ -60,18 +95,45 @@ module Faker
60
95
  "#{l_d}.#{r_d}".to_f
61
96
  end
62
97
 
98
+ ##
99
+ # Produces a non-zero single-digit integer.
100
+ #
101
+ # @return [Integer]
102
+ #
103
+ # @example
104
+ # Faker::Number.non_zero_digit #=> 8
105
+ #
106
+ # @faker.version 1.0.0
63
107
  def non_zero_digit
64
108
  rand(1..9)
65
109
  end
66
110
 
111
+ ##
112
+ # Produces a single-digit integer.
113
+ #
114
+ # @return [Integer]
115
+ #
116
+ # @example
117
+ # Faker::Number.digit #=> 1
118
+ #
119
+ # @faker.version 1.0.0
67
120
  def digit
68
121
  rand(10)
69
122
  end
70
123
 
124
+ ##
125
+ # Produces a number in hexadecimal format.
126
+ #
127
+ # @param digits [Integer] Number of digits in the he
128
+ # @return [String]
129
+ #
130
+ # @example
131
+ # Faker::Number.hexadecimal(digits: 3) #=> "e74"
132
+ #
133
+ # @faker.version 1.0.0
71
134
  def hexadecimal(legacy_digits = NOT_GIVEN, digits: 6)
72
- if legacy_digits != NOT_GIVEN
73
- warn_with_uplevel 'Passing `digits` with the 1st argument of `Number.hexadecimal` is deprecated. Use keyword argument like `Number.hexadecimal(digits: ...)` instead.', uplevel: 1
74
- digits = legacy_digits
135
+ warn_for_deprecated_arguments do |keywords|
136
+ keywords << :digits if legacy_digits != NOT_GIVEN
75
137
  end
76
138
 
77
139
  hex = ''
@@ -79,14 +141,21 @@ module Faker
79
141
  hex
80
142
  end
81
143
 
144
+ ##
145
+ # Produces a float given a mean and standard deviation.
146
+ #
147
+ # @param mean [Integer]
148
+ # @param standard_deviation [Integer, Float]
149
+ # @return [Float]
150
+ #
151
+ # @example
152
+ # Faker::Number.normal(mean: 50, standard_deviation: 3.5) #=> 47.14669604069156
153
+ #
154
+ # @faker.version 1.0.0
82
155
  def normal(legacy_mean = NOT_GIVEN, legacy_standard_deviation = NOT_GIVEN, mean: 1, standard_deviation: 1)
83
- if legacy_mean != NOT_GIVEN
84
- warn_with_uplevel 'Passing `mean` with the 1st argument of `Number.normal` is deprecated. Use keyword argument like `Number.normal(mean: ...)` instead.', uplevel: 1
85
- mean = legacy_mean
86
- end
87
- if legacy_standard_deviation != NOT_GIVEN
88
- warn_with_uplevel 'Passing `standard_deviation` with the 2nd argument of `Number.normal` is deprecated. Use keyword argument like `Number.normal(standard_deviation: ...)` instead.', uplevel: 1
89
- standard_deviation = legacy_standard_deviation
156
+ warn_for_deprecated_arguments do |keywords|
157
+ keywords << :mean if legacy_mean != NOT_GIVEN
158
+ keywords << :standard_deviation if legacy_standard_deviation != NOT_GIVEN
90
159
  end
91
160
 
92
161
  theta = 2 * Math::PI * rand
@@ -95,36 +164,59 @@ module Faker
95
164
  mean + scale * Math.cos(theta)
96
165
  end
97
166
 
167
+ ##
168
+ # Produces a number between two provided values. Boundaries are inclusive.
169
+ #
170
+ # @param from [Integer] The lowest number to include.
171
+ # @param to [Integer] The highest number to include.
172
+ # @return [Integer]
173
+ #
174
+ # @example
175
+ # Faker::Number.between(from: 1, to: 10) #=> 7
176
+ #
177
+ # @faker.version 1.0.0
98
178
  def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
99
- if legacy_from != NOT_GIVEN
100
- warn_with_uplevel 'Passing `from` with the 1st argument of `Number.between` is deprecated. Use keyword argument like `Number.between(from: ...)` instead.', uplevel: 1
101
- from = legacy_from
102
- end
103
- if legacy_to != NOT_GIVEN
104
- warn_with_uplevel 'Passing `to` with the 2nd argument of `Number.between` is deprecated. Use keyword argument like `Number.between(to: ...)` instead.', uplevel: 1
105
- to = legacy_to
179
+ warn_for_deprecated_arguments do |keywords|
180
+ keywords << :from if legacy_from != NOT_GIVEN
181
+ keywords << :to if legacy_to != NOT_GIVEN
106
182
  end
107
183
 
108
184
  Faker::Base.rand_in_range(from, to)
109
185
  end
110
186
 
187
+ ##
188
+ # Produces a number within two provided values. Boundaries are inclusive or exclusive depending on the range passed.
189
+ #
190
+ # @param range [Range] The range from which to generate a number.
191
+ # @return [Integer]
192
+ #
193
+ # @example
194
+ # Faker::Number.within(range: 1..10) #=> 7
195
+ #
196
+ # @faker.version 1.0.0
111
197
  def within(legacy_range = NOT_GIVEN, range: 1.00..5000.00)
112
- if legacy_range != NOT_GIVEN
113
- warn_with_uplevel 'Passing `range` with the 1st argument of `Number.within` is deprecated. Use keyword argument like `Number.within(range: ...)` instead.', uplevel: 1
114
- range = legacy_range
198
+ warn_for_deprecated_arguments do |keywords|
199
+ keywords << :range if legacy_range != NOT_GIVEN
115
200
  end
116
201
 
117
202
  between(from: range.min, to: range.max)
118
203
  end
119
204
 
205
+ ##
206
+ # Produces a positive float.
207
+ #
208
+ # @param from [Integer] The lower boundary.
209
+ # @param to [Integer] The higher boundary.
210
+ # @return [Float]
211
+ #
212
+ # @example
213
+ # Faker::Number.positive #=> 235.59238499107653
214
+ #
215
+ # @faker.version 1.0.0
120
216
  def positive(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
121
- if legacy_from != NOT_GIVEN
122
- warn_with_uplevel 'Passing `from` with the 1st argument of `Number.positive` is deprecated. Use keyword argument like `Number.positive(from: ...)` instead.', uplevel: 1
123
- from = legacy_from
124
- end
125
- if legacy_to != NOT_GIVEN
126
- warn_with_uplevel 'Passing `to` with the 2nd argument of `Number.positive` is deprecated. Use keyword argument like `Number.positive(to: ...)` instead.', uplevel: 1
127
- to = legacy_to
217
+ warn_for_deprecated_arguments do |keywords|
218
+ keywords << :from if legacy_from != NOT_GIVEN
219
+ keywords << :to if legacy_to != NOT_GIVEN
128
220
  end
129
221
 
130
222
  random_number = between(from: from, to: to)
@@ -132,14 +224,21 @@ module Faker
132
224
  greater_than_zero(random_number)
133
225
  end
134
226
 
227
+ ##
228
+ # Produces a negative float.
229
+ #
230
+ # @param from [Integer] The lower boundary.
231
+ # @param to [Integer] The higher boundary.
232
+ # @return [Float]
233
+ #
234
+ # @example
235
+ # Faker::Number.negative #=> -4480.042585669558
236
+ #
237
+ # @faker.version 1.0.0
135
238
  def negative(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: -5000.00, to: -1.00)
136
- if legacy_from != NOT_GIVEN
137
- warn_with_uplevel 'Passing `from` with the 1st argument of `Number.negative` is deprecated. Use keyword argument like `Number.negative(from: ...)` instead.', uplevel: 1
138
- from = legacy_from
139
- end
140
- if legacy_to != NOT_GIVEN
141
- warn_with_uplevel 'Passing `to` with the 2nd argument of `Number.negative` is deprecated. Use keyword argument like `Number.negative(to: ...)` instead.', uplevel: 1
142
- to = legacy_to
239
+ warn_for_deprecated_arguments do |keywords|
240
+ keywords << :from if legacy_from != NOT_GIVEN
241
+ keywords << :to if legacy_to != NOT_GIVEN
143
242
  end
144
243
 
145
244
  random_number = between(from: from, to: to)