faker 1.9.3 → 2.1.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.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +279 -3
  3. data/README.md +26 -11
  4. data/bin/faker +5 -0
  5. data/lib/faker/blockchain/tezos.rb +10 -5
  6. data/lib/faker/books/dune.rb +2 -2
  7. data/lib/faker/books/lovecraft.rb +18 -18
  8. data/lib/faker/creature/animal.rb +1 -1
  9. data/lib/faker/creature/cat.rb +1 -1
  10. data/lib/faker/creature/dog.rb +1 -1
  11. data/lib/faker/creature/horse.rb +19 -0
  12. data/lib/faker/default/address.rb +3 -3
  13. data/lib/faker/default/alphanumeric.rb +4 -4
  14. data/lib/faker/default/avatar.rb +1 -1
  15. data/lib/faker/default/bank.rb +2 -2
  16. data/lib/faker/default/boolean.rb +1 -1
  17. data/lib/faker/default/cannabis.rb +4 -0
  18. data/lib/faker/default/chile_rut.rb +3 -3
  19. data/lib/faker/default/code.rb +5 -5
  20. data/lib/faker/default/coffee.rb +2 -0
  21. data/lib/faker/default/commerce.rb +4 -4
  22. data/lib/faker/default/company.rb +6 -2
  23. data/lib/faker/default/crypto_coin.rb +9 -4
  24. data/lib/faker/default/date.rb +9 -9
  25. data/lib/faker/default/demographic.rb +1 -1
  26. data/lib/faker/default/device.rb +2 -2
  27. data/lib/faker/default/driving_licence.rb +2 -2
  28. data/lib/faker/default/educator.rb +0 -3
  29. data/lib/faker/default/file.rb +11 -2
  30. data/lib/faker/default/fillmurray.rb +2 -2
  31. data/lib/faker/default/finance.rb +1 -1
  32. data/lib/faker/default/hipster.rb +16 -16
  33. data/lib/faker/default/id_number.rb +47 -10
  34. data/lib/faker/default/internet.rb +35 -22
  35. data/lib/faker/default/invoice.rb +3 -3
  36. data/lib/faker/default/json.rb +6 -6
  37. data/lib/faker/default/lorem.rb +20 -20
  38. data/lib/faker/default/lorem_flickr.rb +4 -4
  39. data/lib/faker/default/lorem_pixel.rb +1 -1
  40. data/lib/faker/default/markdown.rb +7 -7
  41. data/lib/faker/default/measurement.rb +8 -8
  42. data/lib/faker/default/name.rb +2 -4
  43. data/lib/faker/default/nhs.rb +7 -7
  44. data/lib/faker/default/number.rb +35 -27
  45. data/lib/faker/default/omniauth.rb +11 -11
  46. data/lib/faker/default/phone_number.rb +1 -1
  47. data/lib/faker/default/placeholdit.rb +1 -1
  48. data/lib/faker/default/relationship.rb +1 -1
  49. data/lib/faker/default/source.rb +2 -2
  50. data/lib/faker/default/south_africa.rb +1 -1
  51. data/lib/faker/default/space.rb +2 -2
  52. data/lib/faker/default/string.rb +1 -1
  53. data/lib/faker/default/stripe.rb +4 -4
  54. data/lib/faker/default/time.rb +23 -8
  55. data/lib/faker/default/twitter.rb +30 -30
  56. data/lib/faker/default/types.rb +7 -7
  57. data/lib/faker/default/vehicle.rb +5 -5
  58. data/lib/faker/default/world_cup.rb +2 -2
  59. data/lib/faker/games/dota.rb +1 -1
  60. data/lib/faker/games/elder_scrolls.rb +1 -1
  61. data/lib/faker/games/fallout.rb +1 -1
  62. data/lib/faker/games/game.rb +21 -0
  63. data/lib/faker/games/half_life.rb +1 -1
  64. data/lib/faker/games/heroes.rb +1 -1
  65. data/lib/faker/games/heroes_of_the_storm.rb +1 -1
  66. data/lib/faker/games/league_of_legends.rb +1 -1
  67. data/lib/faker/games/myst.rb +1 -1
  68. data/lib/faker/games/overwatch.rb +1 -1
  69. data/lib/faker/games/pokemon.rb +1 -1
  70. data/lib/faker/games/sonic_the_hedgehog.rb +1 -1
  71. data/lib/faker/games/super_smash_bros.rb +1 -1
  72. data/lib/faker/games/witcher.rb +1 -1
  73. data/lib/faker/games/world_of_warcraft.rb +1 -1
  74. data/lib/faker/games/zelda.rb +1 -1
  75. data/lib/faker/japanese_media/dragon_ball.rb +1 -1
  76. data/lib/faker/japanese_media/one_piece.rb +1 -1
  77. data/lib/faker/japanese_media/sword_art_online.rb +1 -1
  78. data/lib/faker/movies/back_to_the_future.rb +1 -1
  79. data/lib/faker/movies/ghostbusters.rb +1 -1
  80. data/lib/faker/movies/harry_potter.rb +1 -1
  81. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +1 -1
  82. data/lib/faker/movies/hobbit.rb +1 -1
  83. data/lib/faker/movies/lebowski.rb +1 -1
  84. data/lib/faker/movies/lord_of_the_rings.rb +1 -1
  85. data/lib/faker/movies/princess_bride.rb +1 -1
  86. data/lib/faker/movies/star_wars.rb +2 -2
  87. data/lib/faker/movies/v_for_vendetta.rb +1 -1
  88. data/lib/faker/{movies → music}/grateful_dead.rb +3 -1
  89. data/lib/faker/music/opera.rb +26 -0
  90. data/lib/faker/sports/basketball.rb +25 -0
  91. data/lib/faker/sports/football.rb +29 -0
  92. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +1 -1
  93. data/lib/faker/tv_shows/bojack_horseman.rb +1 -1
  94. data/lib/faker/tv_shows/breaking_bad.rb +1 -1
  95. data/lib/faker/tv_shows/buffy.rb +1 -1
  96. data/lib/faker/tv_shows/community.rb +1 -1
  97. data/lib/faker/tv_shows/dr_who.rb +1 -1
  98. data/lib/faker/tv_shows/dumb_and_dumber.rb +1 -1
  99. data/lib/faker/tv_shows/family_guy.rb +1 -1
  100. data/lib/faker/tv_shows/friends.rb +1 -1
  101. data/lib/faker/tv_shows/game_of_thrones.rb +1 -1
  102. data/lib/faker/tv_shows/hey_arnold.rb +1 -1
  103. data/lib/faker/tv_shows/how_i_met_your_mother.rb +1 -1
  104. data/lib/faker/tv_shows/michael_scott.rb +1 -1
  105. data/lib/faker/tv_shows/new_girl.rb +1 -1
  106. data/lib/faker/tv_shows/parks_and_rec.rb +1 -1
  107. data/lib/faker/tv_shows/rick_and_morty.rb +1 -1
  108. data/lib/faker/tv_shows/ru_paul.rb +1 -1
  109. data/lib/faker/tv_shows/seinfeld.rb +1 -1
  110. data/lib/faker/tv_shows/silicon_valley.rb +1 -1
  111. data/lib/faker/tv_shows/simpsons.rb +1 -1
  112. data/lib/faker/tv_shows/south_park.rb +1 -1
  113. data/lib/faker/tv_shows/star_trek.rb +1 -1
  114. data/lib/faker/tv_shows/stargate.rb +1 -1
  115. data/lib/faker/tv_shows/stranger_things.rb +1 -1
  116. data/lib/faker/tv_shows/the_expanse.rb +1 -1
  117. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +1 -1
  118. data/lib/faker/tv_shows/the_it_crowd.rb +1 -1
  119. data/lib/faker/tv_shows/the_thick_of_it.rb +1 -1
  120. data/lib/faker/tv_shows/twin_peaks.rb +1 -1
  121. data/lib/faker/tv_shows/venture_bros.rb +1 -1
  122. data/lib/faker/version.rb +1 -1
  123. data/lib/locales/en-AU.yml +1 -1
  124. data/lib/locales/en-IND.yml +1 -1
  125. data/lib/locales/en.yml +4 -1
  126. data/lib/locales/en/address.yml +1 -4
  127. data/lib/locales/en/animal.yml +2 -2
  128. data/lib/locales/en/basketball.yml +99 -0
  129. data/lib/locales/en/cannabis.yml +1 -0
  130. data/lib/locales/en/company.yml +1 -0
  131. data/lib/locales/en/crypto_coin.yml +22 -6
  132. data/lib/locales/en/dc_comics.yml +5 -5
  133. data/lib/locales/en/dota.yml +3 -1
  134. data/lib/locales/en/food.yml +1 -1
  135. data/lib/locales/en/game.yml +283 -0
  136. data/lib/locales/en/grateful_dead.yml +2 -1
  137. data/lib/locales/en/heroes_of_the_storm.yml +2 -2
  138. data/lib/locales/en/horse.yml +6 -0
  139. data/lib/locales/en/kpop.yml +1 -1
  140. data/lib/locales/en/league_of_legends.yml +2 -2
  141. data/lib/locales/en/music.yml +1 -1
  142. data/lib/locales/en/nation.yml +1 -1
  143. data/lib/locales/en/opera.yml +172 -0
  144. data/lib/locales/en/phish.yml +1 -1
  145. data/lib/locales/en/rupaul.yml +51 -21
  146. data/lib/locales/en/space.yml +2 -2
  147. data/lib/locales/en/stargate.yml +1 -2
  148. data/lib/locales/en/subscription.yml +1 -1
  149. data/lib/locales/en/super_smash_bros.yml +8 -0
  150. data/lib/locales/en/verbs.yml +2 -2
  151. data/lib/locales/fr-CA.yml +0 -5
  152. data/lib/locales/fr-CH.yml +0 -1
  153. data/lib/locales/fr.yml +1 -1
  154. data/lib/locales/hy.yml +47 -2
  155. data/lib/locales/ja.yml +16 -0
  156. data/lib/locales/pt-BR.yml +4 -1
  157. data/lib/locales/vi.yml +1 -1
  158. data/lib/locales/zh-CN.yml +3 -6
  159. data/lib/locales/zh-TW.yml +2 -2
  160. metadata +62 -110
  161. data/lib/faker/default/creature.rb +0 -6
  162. data/lib/faker/default/football.rb +0 -27
  163. data/lib/faker/default/games.rb +0 -6
  164. data/lib/faker/default/japanese_media.rb +0 -6
  165. data/lib/faker/default/movies.rb +0 -6
  166. data/lib/faker/default/tv_shows.rb +0 -6
  167. data/lib/faker/deprecate/aqua_teen_hunger_force.rb +0 -15
  168. data/lib/faker/deprecate/back_to_the_future.rb +0 -25
  169. data/lib/faker/deprecate/bitcoin.rb +0 -20
  170. data/lib/faker/deprecate/bojack_horseman.rb +0 -25
  171. data/lib/faker/deprecate/breaking_bad.rb +0 -20
  172. data/lib/faker/deprecate/buffy.rb +0 -35
  173. data/lib/faker/deprecate/cat.rb +0 -25
  174. data/lib/faker/deprecate/community.rb +0 -20
  175. data/lib/faker/deprecate/dog.rb +0 -50
  176. data/lib/faker/deprecate/dota.rb +0 -35
  177. data/lib/faker/deprecate/dr_who.rb +0 -45
  178. data/lib/faker/deprecate/dragon_ball.rb +0 -15
  179. data/lib/faker/deprecate/dumb_and_dumber.rb +0 -25
  180. data/lib/faker/deprecate/dune.rb +0 -35
  181. data/lib/faker/deprecate/elder_scrolls.rb +0 -50
  182. data/lib/faker/deprecate/ethereum.rb +0 -15
  183. data/lib/faker/deprecate/fallout.rb +0 -30
  184. data/lib/faker/deprecate/family_guy.rb +0 -25
  185. data/lib/faker/deprecate/famous_last_words.rb +0 -15
  186. data/lib/faker/deprecate/friends.rb +0 -25
  187. data/lib/faker/deprecate/game_of_thrones.rb +0 -35
  188. data/lib/faker/deprecate/harry_potter.rb +0 -40
  189. data/lib/faker/deprecate/heroes_of_the_storm.rb +0 -30
  190. data/lib/faker/deprecate/hey_arnold.rb +0 -25
  191. data/lib/faker/deprecate/hitchhikers_guide_to_the_galaxy.rb +0 -44
  192. data/lib/faker/deprecate/hobbit.rb +0 -30
  193. data/lib/faker/deprecate/how_i_met_your_mother.rb +0 -30
  194. data/lib/faker/deprecate/league_of_legends.rb +0 -40
  195. data/lib/faker/deprecate/lebowski.rb +0 -25
  196. data/lib/faker/deprecate/lord_of_the_rings.rb +0 -25
  197. data/lib/faker/deprecate/lovecraft.rb +0 -65
  198. data/lib/faker/deprecate/matz.rb +0 -15
  199. data/lib/faker/deprecate/michael_scott.rb +0 -15
  200. data/lib/faker/deprecate/most_interesting_man_in_the_world.rb +0 -15
  201. data/lib/faker/deprecate/myst.rb +0 -35
  202. data/lib/faker/deprecate/new_girl.rb +0 -20
  203. data/lib/faker/deprecate/one_piece.rb +0 -40
  204. data/lib/faker/deprecate/overwatch.rb +0 -25
  205. data/lib/faker/deprecate/parks_and_rec.rb +0 -20
  206. data/lib/faker/deprecate/pokemon.rb +0 -25
  207. data/lib/faker/deprecate/princess_bride.rb +0 -20
  208. data/lib/faker/deprecate/rick_and_morty.rb +0 -25
  209. data/lib/faker/deprecate/robin.rb +0 -15
  210. data/lib/faker/deprecate/rock_band.rb +0 -15
  211. data/lib/faker/deprecate/ru_paul.rb +0 -20
  212. data/lib/faker/deprecate/seinfeld.rb +0 -25
  213. data/lib/faker/deprecate/shakespeare.rb +0 -50
  214. data/lib/faker/deprecate/silicon_valley.rb +0 -50
  215. data/lib/faker/deprecate/simpsons.rb +0 -25
  216. data/lib/faker/deprecate/singular_siegler.rb +0 -15
  217. data/lib/faker/deprecate/south_park.rb +0 -20
  218. data/lib/faker/deprecate/star_trek.rb +0 -30
  219. data/lib/faker/deprecate/star_wars.rb +0 -95
  220. data/lib/faker/deprecate/stargate.rb +0 -25
  221. data/lib/faker/deprecate/stranger_things.rb +0 -20
  222. data/lib/faker/deprecate/sword_art_online.rb +0 -30
  223. data/lib/faker/deprecate/tezos.rb +0 -33
  224. data/lib/faker/deprecate/the_fresh_prince_of_bel_air.rb +0 -25
  225. data/lib/faker/deprecate/the_it_crowd.rb +0 -30
  226. data/lib/faker/deprecate/the_thick_of_it.rb +0 -25
  227. data/lib/faker/deprecate/twin_peaks.rb +0 -25
  228. data/lib/faker/deprecate/umphreys_mcgee.rb +0 -15
  229. data/lib/faker/deprecate/v_for_vendetta.rb +0 -25
  230. data/lib/faker/deprecate/venture_bros.rb +0 -30
  231. data/lib/faker/deprecate/witcher.rb +0 -40
  232. data/lib/faker/deprecate/world_of_warcraft.rb +0 -20
  233. data/lib/faker/deprecate/yoda.rb +0 -16
  234. data/lib/faker/deprecate/zelda.rb +0 -30
@@ -3,17 +3,17 @@ module Faker
3
3
  require 'json'
4
4
 
5
5
  class << self
6
- def shallow_json(width = 3, options = { key: 'Name.first_name', value: 'Name.first_name' })
7
- options[:key] = options[:key].prepend('Faker::')
8
- options[:value] = options[:value].prepend('Faker::')
6
+ def shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
7
+ options[:key] = 'Faker::' + options[:key]
8
+ options[:value] = 'Faker::' + options[:value]
9
9
 
10
10
  hash = build_shallow_hash(width, options)
11
11
  JSON.generate(hash)
12
12
  end
13
13
 
14
- def add_depth_to_json(json = shallow_json, width = 3, options = { key: 'Name.first_name', value: 'Name.first_name' })
15
- options[:key] = options[:key].prepend('Faker::')
16
- options[:value] = options[:value].prepend('Faker::')
14
+ def add_depth_to_json(json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
15
+ options[:key] = 'Faker::' + options[:key]
16
+ options[:value] = 'Faker::' + options[:value]
17
17
 
18
18
  hash = JSON.parse(json)
19
19
  hash.each do |key, _|
@@ -8,8 +8,8 @@ module Faker
8
8
  sample(translate('faker.lorem.words'))
9
9
  end
10
10
 
11
- def words(num = 3, supplemental = false)
12
- resolved_num = resolve(num)
11
+ def words(number: 3, supplemental: false)
12
+ resolved_num = resolve(number)
13
13
  word_list = (
14
14
  translate('faker.lorem.words') +
15
15
  (supplemental ? translate('faker.lorem.supplemental') : [])
@@ -22,44 +22,44 @@ module Faker
22
22
  sample(Types::CHARACTERS)
23
23
  end
24
24
 
25
- def characters(char_count = 255)
26
- Alphanumeric.alphanumeric(char_count)
25
+ def characters(number: 255)
26
+ Alphanumeric.alphanumeric(number: number)
27
27
  end
28
28
 
29
29
  def multibyte
30
30
  sample(translate('faker.lorem.multibyte')).pack('C*').force_encoding('utf-8')
31
31
  end
32
32
 
33
- def sentence(word_count = 4, supplemental = false, random_words_to_add = 0)
34
- words(word_count + rand(random_words_to_add.to_i), supplemental).join(' ').capitalize + locale_period
33
+ def sentence(word_count: 4, supplemental: false, random_words_to_add: 0)
34
+ words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental).join(' ').capitalize + locale_period
35
35
  end
36
36
 
37
- def sentences(sentence_count = 3, supplemental = false)
38
- 1.upto(resolve(sentence_count)).collect { sentence(3, supplemental) }
37
+ def sentences(number: 3, supplemental: false)
38
+ 1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental) }
39
39
  end
40
40
 
41
- def paragraph(sentence_count = 3, supplemental = false, random_sentences_to_add = 0)
42
- sentences(resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental).join(locale_space)
41
+ def paragraph(sentence_count: 3, supplemental: false, random_sentences_to_add: 0)
42
+ sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental).join(locale_space)
43
43
  end
44
44
 
45
- def paragraphs(paragraph_count = 3, supplemental = false)
46
- 1.upto(resolve(paragraph_count)).collect { paragraph(3, supplemental) }
45
+ def paragraphs(number: 3, supplemental: false)
46
+ 1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental) }
47
47
  end
48
48
 
49
- def paragraph_by_chars(chars = 256, supplemental = false)
50
- paragraph = paragraph(3, supplemental)
49
+ def paragraph_by_chars(number: 256, supplemental: false)
50
+ paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
51
51
 
52
- paragraph += ' ' + paragraph(3, supplemental) while paragraph.length < chars
52
+ paragraph += ' ' + paragraph(sentence_count: 3, supplemental: supplemental) while paragraph.length < number
53
53
 
54
- paragraph[0...chars - 1] + '.'
54
+ paragraph[0...number - 1] + '.'
55
55
  end
56
56
 
57
- def question(word_count = 4, supplemental = false, random_words_to_add = 0)
58
- words(word_count + rand(random_words_to_add), supplemental).join(' ').capitalize + locale_question_mark
57
+ def question(word_count: 4, supplemental: false, random_words_to_add: 0)
58
+ words(number: word_count + rand(random_words_to_add), supplemental: supplemental).join(' ').capitalize + locale_question_mark
59
59
  end
60
60
 
61
- def questions(question_count = 3, supplemental = false)
62
- 1.upto(resolve(question_count)).collect { question(3, supplemental) }
61
+ def questions(number: 3, supplemental: false)
62
+ 1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental) }
63
63
  end
64
64
 
65
65
  private
@@ -5,23 +5,23 @@ module Faker
5
5
  class << self
6
6
  SUPPORTED_COLORIZATIONS = %w[red green blue].freeze
7
7
 
8
- def image(size = '300x300', search_terms = [], match_all = false)
8
+ def image(size: '300x300', search_terms: [], match_all: false)
9
9
  build_url(size, nil, search_terms, match_all)
10
10
  end
11
11
 
12
- def grayscale_image(size = '300x300', search_terms = ['all'], match_all = false)
12
+ def grayscale_image(size: '300x300', search_terms: ['all'], match_all: false)
13
13
  raise ArgumentError, 'Search terms must be specified for grayscale images' unless search_terms.any?
14
14
 
15
15
  build_url(size, 'g', search_terms, match_all)
16
16
  end
17
17
 
18
- def pixelated_image(size = '300x300', search_terms = ['all'], match_all = false)
18
+ def pixelated_image(size: '300x300', search_terms: ['all'], match_all: false)
19
19
  raise ArgumentError, 'Search terms must be specified for pixelated images' unless search_terms.any?
20
20
 
21
21
  build_url(size, 'p', search_terms, match_all)
22
22
  end
23
23
 
24
- def colorized_image(size = '300x300', color = 'red', search_terms = ['all'], match_all = false)
24
+ def colorized_image(size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
25
25
  raise ArgumentError, 'Search terms must be specified for colorized images' unless search_terms.any?
26
26
  raise ArgumentError, "Supported colorizations are #{SUPPORTED_COLORIZATIONS.join(', ')}" unless SUPPORTED_COLORIZATIONS.include?(color)
27
27
 
@@ -18,7 +18,7 @@ module Faker
18
18
  transport].freeze
19
19
 
20
20
  # rubocop:disable Metrics/ParameterLists
21
- def image(size = '300x300', is_gray = false, category = nil, number = nil, text = nil, secure: true)
21
+ def image(size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
22
22
  raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
23
23
  raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
24
24
  raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
@@ -8,7 +8,7 @@ module Faker
8
8
  end
9
9
 
10
10
  def emphasis
11
- paragraph = Faker::Lorem.paragraph(3)
11
+ paragraph = Faker::Lorem.paragraph(sentence_count: 3)
12
12
  words = paragraph.split(' ')
13
13
  position = rand(0..words.length - 1)
14
14
  formatting = fetch('markdown.emphasis')
@@ -21,7 +21,7 @@ module Faker
21
21
 
22
22
  result = []
23
23
  number.times do |i|
24
- result << "#{i}. #{Faker::Lorem.sentence(1)} \n"
24
+ result << "#{i}. #{Faker::Lorem.sentence(word_count: 1)} \n"
25
25
  end
26
26
  result.join('')
27
27
  end
@@ -31,17 +31,17 @@ module Faker
31
31
 
32
32
  result = []
33
33
  number.times do |_i|
34
- result << "* #{Faker::Lorem.sentence(1)} \n"
34
+ result << "* #{Faker::Lorem.sentence(word_count: 1)} \n"
35
35
  end
36
36
  result.join('')
37
37
  end
38
38
 
39
39
  def inline_code
40
- "`#{Faker::Lorem.sentence(1)}`"
40
+ "`#{Faker::Lorem.sentence(word_count: 1)}`"
41
41
  end
42
42
 
43
43
  def block_code
44
- "```ruby\n#{Lorem.sentence(1)}\n```"
44
+ "```ruby\n#{Lorem.sentence(word_count: 1)}\n```"
45
45
  end
46
46
 
47
47
  def table
@@ -59,11 +59,11 @@ module Faker
59
59
  send(method_list[rand(0..method_list.length - 1)])
60
60
  end
61
61
 
62
- def sandwich(sentences = 3, repeat = 1)
62
+ def sandwich(sentences: 3, repeat: 1)
63
63
  text_block = []
64
64
  text_block << headers
65
65
  repeat.times do
66
- text_block << Faker::Lorem.paragraph(sentences)
66
+ text_block << Faker::Lorem.paragraph(sentence_count: sentences)
67
67
  text_block << random
68
68
  end
69
69
  text_block.join("\n")
@@ -6,35 +6,35 @@ module Faker
6
6
  ALL = 'all'
7
7
  NONE = 'none'
8
8
 
9
- def height(amount = rand(10))
9
+ def height(amount: rand(10))
10
10
  define_measurement_locale(amount, 'height')
11
11
  end
12
12
 
13
- def length(amount = rand(10))
13
+ def length(amount: rand(10))
14
14
  define_measurement_locale(amount, 'length')
15
15
  end
16
16
 
17
- def volume(amount = rand(10))
17
+ def volume(amount: rand(10))
18
18
  define_measurement_locale(amount, 'volume')
19
19
  end
20
20
 
21
- def weight(amount = rand(10))
21
+ def weight(amount: rand(10))
22
22
  define_measurement_locale(amount, 'weight')
23
23
  end
24
24
 
25
- def metric_height(amount = rand(10))
25
+ def metric_height(amount: rand(10))
26
26
  define_measurement_locale(amount, 'metric_height')
27
27
  end
28
28
 
29
- def metric_length(amount = rand(10))
29
+ def metric_length(amount: rand(10))
30
30
  define_measurement_locale(amount, 'metric_length')
31
31
  end
32
32
 
33
- def metric_volume(amount = rand(10))
33
+ def metric_volume(amount: rand(10))
34
34
  define_measurement_locale(amount, 'metric_volume')
35
35
  end
36
36
 
37
- def metric_weight(amount = rand(10))
37
+ def metric_weight(amount: rand(10))
38
38
  define_measurement_locale(amount, 'metric_weight')
39
39
  end
40
40
 
@@ -5,8 +5,6 @@ module Faker
5
5
  flexible :name
6
6
 
7
7
  class << self
8
- extend Gem::Deprecate
9
-
10
8
  def name
11
9
  parse('name.name')
12
10
  end
@@ -48,8 +46,8 @@ module Faker
48
46
  fetch('name.suffix')
49
47
  end
50
48
 
51
- def initials(character_count = 3)
52
- (0...character_count).map { rand(65..90).chr }.join
49
+ def initials(number: 3)
50
+ (0...number).map { rand(65..90).chr }.join
53
51
  end
54
52
  end
55
53
  end
@@ -7,15 +7,15 @@ module Faker
7
7
  base_number = rand(400_000_001...499_999_999)
8
8
  # If the check digit is equivalent to 10, the number is invalid.
9
9
  # See https://en.wikipedia.org/wiki/NHS_number
10
- base_number -= 1 if check_digit(base_number) == 10
11
- "#{base_number}#{check_digit(base_number)}".to_s
12
- .chars
13
- .insert(3, ' ')
14
- .insert(7, ' ')
15
- .join('')
10
+ base_number -= 1 if check_digit(number: base_number) == 10
11
+ "#{base_number}#{check_digit(number: base_number)}".to_s
12
+ .chars
13
+ .insert(3, ' ')
14
+ .insert(7, ' ')
15
+ .join('')
16
16
  end
17
17
 
18
- def check_digit(number = 0)
18
+ def check_digit(number: 0)
19
19
  sum = 0
20
20
  number.to_s.chars.each_with_index do |digit, idx|
21
21
  position = idx + 1
@@ -3,80 +3,88 @@
3
3
  module Faker
4
4
  class Number < Base
5
5
  class << self
6
- def number(digits = 10)
7
- num = ''
8
-
9
- if digits > 1
10
- num = non_zero_digit
11
- digits -= 1
12
- end
6
+ def number(digits: 10)
7
+ return if digits < 1
8
+ return 0 if digits == 1
13
9
 
14
- num + (1..digits).collect { digit }.join
10
+ # Ensure the first digit is not zero
11
+ ([non_zero_digit] + generate(digits - 1)).join.to_i
15
12
  end
16
13
 
17
- def leading_zero_number(digits = 10)
14
+ def leading_zero_number(digits: 10)
18
15
  '0' + (2..digits).collect { digit }.join
19
16
  end
20
17
 
21
- def decimal_part(digits = 10)
18
+ def decimal_part(digits: 10)
22
19
  num = ''
23
20
  if digits > 1
24
21
  num = non_zero_digit
25
22
  digits -= 1
26
23
  end
27
- leading_zero_number(digits) + num
24
+ leading_zero_number(digits: digits) + num.to_s
28
25
  end
29
26
 
30
- def decimal(l_digits = 5, r_digits = 2)
31
- l_d = number(l_digits)
32
- r_d = decimal_part(r_digits)
33
-
34
- "#{l_d}.#{r_d}"
27
+ def decimal(l_digits: 5, r_digits: 2)
28
+ l_d = number(digits: l_digits)
29
+ r_d = if r_digits == 1
30
+ generate(r_digits)
31
+ else
32
+ # Ensure the last digit is not zero
33
+ # so it does not get truncated on converting to float
34
+ generate(r_digits - 1).join + non_zero_digit.to_s
35
+ end
36
+ "#{l_d}.#{r_d}".to_f
35
37
  end
36
38
 
37
39
  def non_zero_digit
38
- rand(1..9).to_s
40
+ rand(1..9)
39
41
  end
40
42
 
41
43
  def digit
42
- rand(10).to_s
44
+ rand(10)
43
45
  end
44
46
 
45
- def hexadecimal(digits = 6)
47
+ def hexadecimal(digits: 6)
46
48
  hex = ''
47
49
  digits.times { hex += rand(15).to_s(16) }
48
50
  hex
49
51
  end
50
52
 
51
- def normal(mean = 1, standard_deviation = 1)
53
+ def normal(mean: 1, standard_deviation: 1)
52
54
  theta = 2 * Math::PI * rand
53
55
  rho = Math.sqrt(-2 * Math.log(1 - rand))
54
56
  scale = standard_deviation * rho
55
57
  mean + scale * Math.cos(theta)
56
58
  end
57
59
 
58
- def between(from = 1.00, to = 5000.00)
60
+ def between(from: 1.00, to: 5000.00)
59
61
  Faker::Base.rand_in_range(from, to)
60
62
  end
61
63
 
62
- def within(range = 1.00..5000.00)
63
- between(range.min, range.max)
64
+ def within(range: 1.00..5000.00)
65
+ between(from: range.min, to: range.max)
64
66
  end
65
67
 
66
- def positive(from = 1.00, to = 5000.00)
67
- random_number = between(from, to)
68
+ def positive(from: 1.00, to: 5000.00)
69
+ random_number = between(from: from, to: to)
68
70
 
69
71
  greater_than_zero(random_number)
70
72
  end
71
73
 
72
- def negative(from = -5000.00, to = -1.00)
73
- random_number = between(from, to)
74
+ def negative(from: -5000.00, to: -1.00)
75
+ random_number = between(from: from, to: to)
74
76
 
75
77
  less_than_zero(random_number)
76
78
  end
77
79
 
78
80
  private
79
81
 
82
+ def generate(count)
83
+ return [] if count.zero?
84
+
85
+ Array.new(count) { digit }
86
+ end
87
+
80
88
  def greater_than_zero(number)
81
89
  should_be(number, :>)
82
90
  end
@@ -10,12 +10,12 @@ module Faker
10
10
 
11
11
  def initialize(name: nil, email: nil)
12
12
  @name = name || "#{Name.first_name} #{Name.last_name}"
13
- @email = email || Internet.safe_email(self.name)
13
+ @email = email || Internet.safe_email(name: self.name)
14
14
  @first_name, @last_name = self.name.split
15
15
  end
16
16
 
17
17
  class << self
18
- def google(name: nil, email: nil, uid: Number.number(9))
18
+ def google(name: nil, email: nil, uid: Number.number(digits: 9).to_s)
19
19
  auth = Omniauth.new(name: name, email: email)
20
20
  {
21
21
  provider: 'google_oauth2',
@@ -44,7 +44,7 @@ module Faker
44
44
  profile: "https://plus.google.com/#{uid}",
45
45
  picture: image,
46
46
  gender: gender,
47
- birthday: Date.backward(36_400).strftime('%Y-%m-%d'),
47
+ birthday: Date.backward(days: 36_400).strftime('%Y-%m-%d'),
48
48
  local: 'en',
49
49
  hd: "#{Company.name.downcase}.com"
50
50
  },
@@ -52,7 +52,7 @@ module Faker
52
52
  'iss' => 'accounts.google.com',
53
53
  'at_hash' => Crypto.md5,
54
54
  'email_verified' => true,
55
- 'sub' => Number.number(28).to_s,
55
+ 'sub' => Number.number(digits: 28).to_s,
56
56
  'azp' => 'APP_ID',
57
57
  'email' => auth.email,
58
58
  'aud' => 'APP_ID',
@@ -64,7 +64,7 @@ module Faker
64
64
  }
65
65
  end
66
66
 
67
- def facebook(name: nil, email: nil, username: nil, uid: Number.number(7))
67
+ def facebook(name: nil, email: nil, username: nil, uid: Number.number(digits: 7).to_s)
68
68
  auth = Omniauth.new(name: name, email: email)
69
69
  username ||= "#{auth.first_name.downcase[0]}#{auth.last_name.downcase}"
70
70
  {
@@ -92,7 +92,7 @@ module Faker
92
92
  link: "http://www.facebook.com/#{username}",
93
93
  username: username,
94
94
  location: {
95
- id: Number.number(9),
95
+ id: Number.number(digits: 9).to_s,
96
96
  name: city_state
97
97
  },
98
98
  gender: gender,
@@ -106,7 +106,7 @@ module Faker
106
106
  }
107
107
  end
108
108
 
109
- def twitter(name: nil, nickname: nil, uid: Number.number(6))
109
+ def twitter(name: nil, nickname: nil, uid: Number.number(digits: 6).to_s)
110
110
  auth = Omniauth.new(name: name)
111
111
  nickname ||= auth.name.downcase.delete(' ')
112
112
  location = city_state
@@ -179,7 +179,7 @@ module Faker
179
179
  }
180
180
  end
181
181
 
182
- def linkedin(name: nil, email: nil, uid: Number.number(6))
182
+ def linkedin(name: nil, email: nil, uid: Number.number(digits: 6).to_s)
183
183
  auth = Omniauth.new(name: name, email: email)
184
184
  first_name = auth.first_name.downcase
185
185
  last_name = auth.last_name.downcase
@@ -242,7 +242,7 @@ module Faker
242
242
  }
243
243
  end
244
244
 
245
- def github(name: nil, email: nil, uid: Number.number(8))
245
+ def github(name: nil, email: nil, uid: Number.number(digits: 8).to_s)
246
246
  auth = Omniauth.new(name: name, email: email)
247
247
  login = auth.name.downcase.tr(' ', '-')
248
248
  html_url = "https://github.com/#{login}"
@@ -293,8 +293,8 @@ module Faker
293
293
  public_gists: random_number_from_range(1..1000),
294
294
  followers: random_number_from_range(1..1000),
295
295
  following: random_number_from_range(1..1000),
296
- created_at: Time.backward(36_400).iso8601,
297
- updated_at: Time.backward(2).iso8601
296
+ created_at: Time.backward(days: 36_400).iso8601,
297
+ updated_at: Time.backward(days: 2).iso8601
298
298
  }
299
299
  }
300
300
  }