faker 2.15.1 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +848 -34
  3. data/README.md +225 -103
  4. data/lib/faker/blockchain/aeternity.rb +1 -1
  5. data/lib/faker/blockchain/bitcoin.rb +2 -2
  6. data/lib/faker/blockchain/ethereum.rb +1 -1
  7. data/lib/faker/blockchain/tezos.rb +31 -3
  8. data/lib/faker/books/dune.rb +2 -10
  9. data/lib/faker/books/lovecraft.rb +9 -41
  10. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  11. data/lib/faker/creature/bird.rb +203 -0
  12. data/lib/faker/default/address.rb +7 -27
  13. data/lib/faker/default/alphanumeric.rb +2 -8
  14. data/lib/faker/default/app.rb +1 -10
  15. data/lib/faker/default/avatar.rb +1 -12
  16. data/lib/faker/default/bank.rb +25 -17
  17. data/lib/faker/default/barcode.rb +33 -22
  18. data/lib/faker/default/boolean.rb +1 -4
  19. data/lib/faker/default/cannabis.rb +10 -0
  20. data/lib/faker/default/chile_rut.rb +25 -25
  21. data/lib/faker/default/chuck_norris.rb +1 -0
  22. data/lib/faker/default/code.rb +71 -42
  23. data/lib/faker/default/color.rb +77 -6
  24. data/lib/faker/default/commerce.rb +31 -17
  25. data/lib/faker/default/company.rb +137 -22
  26. data/lib/faker/default/crypto.rb +26 -4
  27. data/lib/faker/default/crypto_coin.rb +3 -15
  28. data/lib/faker/default/date.rb +65 -42
  29. data/lib/faker/default/demographic.rb +1 -5
  30. data/lib/faker/default/driving_licence.rb +20 -18
  31. data/lib/faker/default/drone.rb +1 -1
  32. data/lib/faker/default/educator.rb +13 -0
  33. data/lib/faker/default/emotion.rb +33 -0
  34. data/lib/faker/default/file.rb +5 -22
  35. data/lib/faker/default/finance.rb +30 -7
  36. data/lib/faker/default/food.rb +27 -1
  37. data/lib/faker/default/hipster.rb +8 -48
  38. data/lib/faker/default/hobby.rb +22 -0
  39. data/lib/faker/default/html.rb +230 -0
  40. data/lib/faker/default/id_number.rb +175 -27
  41. data/lib/faker/default/internet.rb +333 -114
  42. data/lib/faker/default/invoice.rb +4 -17
  43. data/lib/faker/default/json.rb +4 -21
  44. data/lib/faker/default/lorem.rb +175 -73
  45. data/lib/faker/default/lorem_flickr.rb +4 -37
  46. data/lib/faker/default/markdown.rb +10 -13
  47. data/lib/faker/default/marketing.rb +1 -1
  48. data/lib/faker/default/measurement.rb +16 -48
  49. data/lib/faker/default/name.rb +1 -5
  50. data/lib/faker/default/nation.rb +0 -3
  51. data/lib/faker/default/{nhs.rb → national_health_service.rb} +9 -8
  52. data/lib/faker/default/number.rb +33 -61
  53. data/lib/faker/default/omniauth.rb +55 -52
  54. data/lib/faker/default/phone_number.rb +36 -21
  55. data/lib/faker/default/placeholdit.rb +10 -20
  56. data/lib/faker/default/relationship.rb +1 -5
  57. data/lib/faker/default/religion.rb +6 -0
  58. data/lib/faker/default/science.rb +108 -0
  59. data/lib/faker/default/source.rb +3 -16
  60. data/lib/faker/default/south_africa.rb +3 -3
  61. data/lib/faker/default/string.rb +1 -7
  62. data/lib/faker/default/stripe.rb +4 -20
  63. data/lib/faker/default/tea.rb +41 -0
  64. data/lib/faker/{music/show.rb → default/theater.rb} +11 -8
  65. data/lib/faker/default/time.rb +4 -34
  66. data/lib/faker/default/twitter.rb +7 -23
  67. data/lib/faker/default/types.rb +12 -34
  68. data/lib/faker/default/vehicle.rb +44 -54
  69. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  70. data/lib/faker/default/world_cup.rb +2 -11
  71. data/lib/faker/games/clash_of_clans.rb +1 -1
  72. data/lib/faker/games/dnd.rb +49 -7
  73. data/lib/faker/games/dota.rb +14 -5
  74. data/lib/faker/games/final_fantasy_xiv.rb +73 -0
  75. data/lib/faker/games/minecraft.rb +1 -1
  76. data/lib/faker/games/myst.rb +1 -1
  77. data/lib/faker/games/tarkov.rb +205 -0
  78. data/lib/faker/games/touhou.rb +75 -0
  79. data/lib/faker/games/witcher.rb +39 -0
  80. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  81. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +51 -0
  82. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  83. data/lib/faker/japanese_media/one_piece.rb +1 -1
  84. data/lib/faker/locations/australia.rb +52 -0
  85. data/lib/faker/movies/avatar.rb +49 -0
  86. data/lib/faker/movies/hackers.rb +48 -0
  87. data/lib/faker/movies/star_wars.rb +73 -5
  88. data/lib/faker/movies/{room.rb → the_room.rb} +4 -4
  89. data/lib/faker/movies/tron.rb +161 -0
  90. data/lib/faker/music/hiphop.rb +3 -3
  91. data/lib/faker/music/music.rb +12 -0
  92. data/lib/faker/music/rock_band.rb +12 -0
  93. data/lib/faker/music/smashing_pumpkins.rb +64 -0
  94. data/lib/faker/quotes/quote.rb +13 -0
  95. data/lib/faker/quotes/rajnikanth.rb +1 -0
  96. data/lib/faker/quotes/shakespeare.rb +34 -0
  97. data/lib/faker/religion/bible.rb +50 -0
  98. data/lib/faker/sports/chess.rb +90 -0
  99. data/lib/faker/sports/mountaineering.rb +22 -0
  100. data/lib/faker/sports/sport.rb +116 -0
  101. data/lib/faker/travel/airport.rb +43 -0
  102. data/lib/faker/travel/train_station.rb +54 -0
  103. data/lib/faker/tv_shows/archer.rb +51 -0
  104. data/lib/faker/tv_shows/big_bang_theory.rb +1 -1
  105. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  106. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  107. data/lib/faker/tv_shows/south_park.rb +15 -0
  108. data/lib/faker/tv_shows/spongebob.rb +50 -0
  109. data/lib/faker/tv_shows/suits.rb +1 -1
  110. data/lib/faker/tv_shows/supernatural.rb +48 -0
  111. data/lib/faker/tv_shows/the_office.rb +37 -0
  112. data/lib/faker/version.rb +2 -2
  113. data/lib/faker.rb +26 -67
  114. data/lib/helpers/base58.rb +1 -1
  115. data/lib/helpers/deprecator.rb +53 -0
  116. data/lib/helpers/positional_generator.rb +480 -0
  117. data/lib/helpers/unique_generator.rb +13 -14
  118. data/lib/locales/README.md +18 -2
  119. data/lib/locales/ar.yml +6 -1
  120. data/lib/locales/bg.yml +1 -2
  121. data/lib/locales/da-DK.yml +529 -35
  122. data/lib/locales/de-AT.yml +3487 -27
  123. data/lib/locales/de-CH.yml +4328 -12
  124. data/lib/locales/de.yml +7185 -99
  125. data/lib/locales/ee.yml +0 -1
  126. data/lib/locales/en/address.yml +1826 -562
  127. data/lib/locales/en/airport.yml +381 -0
  128. data/lib/locales/en/animal.yml +1 -1
  129. data/lib/locales/en/archer.yml +75 -0
  130. data/lib/locales/en/australia.yml +108 -0
  131. data/lib/locales/en/avatar.yml +31 -0
  132. data/lib/locales/en/bank.yml +1 -1
  133. data/lib/locales/en/bible.yml +90 -0
  134. data/lib/locales/en/bird.yml +1281 -0
  135. data/lib/locales/en/book.yml +487 -3
  136. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  137. data/lib/locales/en/cat.yml +1 -1
  138. data/lib/locales/en/chess.yml +103 -0
  139. data/lib/locales/en/coffee.yml +1 -1
  140. data/lib/locales/en/commerce.yml +17 -0
  141. data/lib/locales/en/community.yml +17 -17
  142. data/lib/locales/en/company.yml +1 -0
  143. data/lib/locales/en/computer.yml +23 -4
  144. data/lib/locales/en/cowboy_bebop.yml +163 -0
  145. data/lib/locales/en/device.yml +112 -4
  146. data/lib/locales/en/dnd.yml +186 -1
  147. data/lib/locales/en/dog.yml +262 -7
  148. data/lib/locales/en/dota.yml +173 -0
  149. data/lib/locales/en/dune.yml +266 -397
  150. data/lib/locales/en/educator.yml +6 -0
  151. data/lib/locales/en/emotion.yml +480 -0
  152. data/lib/locales/en/file.yml +9 -1
  153. data/lib/locales/en/final_fantasy_xiv.yml +754 -0
  154. data/lib/locales/en/finance.yml +27 -4
  155. data/lib/locales/en/food.yml +1067 -10
  156. data/lib/locales/en/football.yml +3 -3
  157. data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
  158. data/lib/locales/en/game.yml +11 -0
  159. data/lib/locales/en/hackers.yml +53 -0
  160. data/lib/locales/en/harry_potter.yml +1 -1
  161. data/lib/locales/en/heroes.yml +2 -2
  162. data/lib/locales/en/hobby.yml +171 -0
  163. data/lib/locales/en/horse.yml +2 -2
  164. data/lib/locales/en/id_number.yml +1 -1
  165. data/lib/locales/en/internet.yml +136 -3
  166. data/lib/locales/en/kamen_rider.yml +452 -0
  167. data/lib/locales/en/kpop.yml +7 -7
  168. data/lib/locales/en/lebowski.yml +1 -1
  169. data/lib/locales/en/lovecraft.yml +76 -6
  170. data/lib/locales/en/minecraft.yml +4 -4
  171. data/lib/locales/en/mitch_hedberg.yml +46 -0
  172. data/lib/locales/en/mountain.yml +14 -1
  173. data/lib/locales/en/mountaineering.yml +14 -0
  174. data/lib/locales/en/movie.yml +2 -1
  175. data/lib/locales/en/music.yml +152 -142
  176. data/lib/locales/en/naruto.yml +2 -3
  177. data/lib/locales/en/one_piece.yml +1 -1
  178. data/lib/locales/en/opera.yml +2 -2
  179. data/lib/locales/en/overwatch.yml +5 -7
  180. data/lib/locales/en/phone_number.yml +78 -3
  181. data/lib/locales/en/rock_band.yml +1 -0
  182. data/lib/locales/en/science.yml +481 -3
  183. data/lib/locales/en/shakespeare.yml +21 -24
  184. data/lib/locales/en/smashing_pumpkins.yml +382 -0
  185. data/lib/locales/en/source.yml +5 -0
  186. data/lib/locales/en/south_park.yml +360 -2
  187. data/lib/locales/en/space.yml +1 -1
  188. data/lib/locales/en/spongebob.yml +489 -0
  189. data/lib/locales/en/sport.yml +130 -0
  190. data/lib/locales/en/star_wars.yml +1 -1
  191. data/lib/locales/en/stranger_thing.yml +1 -1
  192. data/lib/locales/en/super_smash_bros.yml +7 -2
  193. data/lib/locales/en/supernatural.yml +141 -0
  194. data/lib/locales/en/tarkov.yml +593 -0
  195. data/lib/locales/en/tea.yml +172 -0
  196. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  197. data/lib/locales/en/the_office.yml +86 -0
  198. data/lib/locales/en/{room.yml → the_room.yml} +1 -1
  199. data/lib/locales/en/{show.yml → theater.yml} +1 -1
  200. data/lib/locales/en/touhou.yml +839 -0
  201. data/lib/locales/en/train_station.yml +280 -0
  202. data/lib/locales/en/tron.yml +227 -0
  203. data/lib/locales/en/vehicle.yml +2809 -75
  204. data/lib/locales/en/witcher.yml +37 -0
  205. data/lib/locales/en-AU.yml +718 -47
  206. data/lib/locales/en-CA.yml +373 -18
  207. data/lib/locales/en-GB.yml +116 -8
  208. data/lib/locales/en-IND.yml +1259 -17
  209. data/lib/locales/en-KE.yml +212 -0
  210. data/lib/locales/en-MS.yml +364 -17
  211. data/lib/locales/en-NEP.yml +212 -38
  212. data/lib/locales/en-NG.yml +1 -0
  213. data/lib/locales/en-NZ.yml +1153 -123
  214. data/lib/locales/en-PAK.yml +369 -10
  215. data/lib/locales/en-SG.yml +581 -16
  216. data/lib/locales/en-UG.yml +1 -0
  217. data/lib/locales/en-US.yml +6914 -74
  218. data/lib/locales/en-ZA.yml +1 -1
  219. data/lib/locales/en-au-ocker.yml +266 -22
  220. data/lib/locales/es-AR.yml +4570 -0
  221. data/lib/locales/es-MX.yml +1 -2
  222. data/lib/locales/es.yml +2 -3
  223. data/lib/locales/fi-FI.yml +3 -1
  224. data/lib/locales/fr/address.yml +20 -0
  225. data/lib/locales/fr/adjective.yml +266 -0
  226. data/lib/locales/fr/ancient.yml +141 -0
  227. data/lib/locales/fr/animal.yml +5 -0
  228. data/lib/locales/fr/appliance.yml +4 -0
  229. data/lib/locales/fr/book.yml +7 -0
  230. data/lib/locales/fr/color.yml +4 -0
  231. data/lib/locales/fr/company.yml +17 -0
  232. data/lib/locales/fr/compass.yml +23 -0
  233. data/lib/locales/fr/demographic.yml +4 -0
  234. data/lib/locales/fr/gender.yml +6 -0
  235. data/lib/locales/fr/internet.yml +4 -0
  236. data/lib/locales/fr/lorem.yml +5 -0
  237. data/lib/locales/fr/measurement.yml +7 -0
  238. data/lib/locales/fr/name.yml +22 -0
  239. data/lib/locales/fr/phone_number.yml +7 -0
  240. data/lib/locales/fr/pokemon.yml +7 -0
  241. data/lib/locales/fr-CA.yml +2733 -44
  242. data/lib/locales/fr-CH.yml +1 -2
  243. data/lib/locales/fr.yml +2 -118
  244. data/lib/locales/hy.yml +3624 -119
  245. data/lib/locales/id.yml +839 -12
  246. data/lib/locales/it.yml +1304 -32
  247. data/lib/locales/ja/README.md +13 -0
  248. data/lib/locales/ja/address.yml +120539 -0
  249. data/lib/locales/ja/adjective.yml +148 -0
  250. data/lib/locales/ja/ancient.yml +4 -0
  251. data/lib/locales/ja/animal.yml +5 -0
  252. data/lib/locales/ja/bank.yml +4 -0
  253. data/lib/locales/ja/book.yml +7 -0
  254. data/lib/locales/ja/cat.yml +5 -0
  255. data/lib/locales/ja/coffee.yml +4 -0
  256. data/lib/locales/ja/color.yml +4 -0
  257. data/lib/locales/ja/commerce.yml +11 -0
  258. data/lib/locales/ja/company.yml +8 -0
  259. data/lib/locales/ja/dog.yml +6 -0
  260. data/lib/locales/ja/emotion.yml +51 -0
  261. data/lib/locales/ja/food.yml +4 -0
  262. data/lib/locales/ja/football.yml +115 -0
  263. data/lib/locales/ja/gender.yml +4 -0
  264. data/lib/locales/ja/lorem.yml +9 -0
  265. data/lib/locales/ja/name.yml +13 -0
  266. data/lib/locales/ja/naruto.yml +230 -0
  267. data/lib/locales/ja/overwatch.yml +5 -0
  268. data/lib/locales/ja/phone_number.yml +7 -0
  269. data/lib/locales/ja/pokemon.yml +7 -0
  270. data/lib/locales/ja/relationship.yml +10 -0
  271. data/lib/locales/ja/restaurant.yml +11 -0
  272. data/lib/locales/ja/space.yml +5 -0
  273. data/lib/locales/ja/sport.yml +130 -0
  274. data/lib/locales/ja/studio_ghibli.yml +112 -0
  275. data/lib/locales/ja/subscription.yml +8 -0
  276. data/lib/locales/ja/super_mario.yml +9 -0
  277. data/lib/locales/ja/super_smash_bros.yml +8 -0
  278. data/lib/locales/ja/touhou.yml +466 -0
  279. data/lib/locales/ja/university.yml +9 -0
  280. data/lib/locales/ja/zelda.yml +5 -0
  281. data/lib/locales/ko.yml +1361 -20
  282. data/lib/locales/lt.yml +315 -0
  283. data/lib/locales/lv.yml +1 -2
  284. data/lib/locales/mi-NZ.yml +283 -0
  285. data/lib/locales/nb-NO.yml +518 -29
  286. data/lib/locales/nl.yml +1 -1
  287. data/lib/locales/pl.yml +1 -2
  288. data/lib/locales/pt-BR.yml +8157 -660
  289. data/lib/locales/pt.yml +844 -45
  290. data/lib/locales/ru.yml +1355 -32
  291. data/lib/locales/sk.yml +4410 -43
  292. data/lib/locales/sv.yml +100 -0
  293. data/lib/locales/th.yml +76 -76
  294. data/lib/locales/tr.yml +1 -2
  295. data/lib/locales/uk.yml +1808 -44
  296. data/lib/locales/vi.yml +1 -0
  297. data/lib/locales/zh-CN/bank.yml +17 -0
  298. data/lib/locales/zh-CN.yml +1 -0
  299. data/lib/locales/zh-TW.yml +1 -0
  300. metadata +134 -133
  301. data/History.md +0 -176
  302. data/lib/faker/default/fillmurray.rb +0 -45
  303. data/lib/faker/default/lorem_pixel.rb +0 -69
  304. data/lib/locales/ja.yml +0 -105
  305. /data/lib/faker/default/{faker_adjective.rb → adjective.rb} +0 -0
@@ -3,6 +3,47 @@
3
3
  module Faker
4
4
  class Science < Base
5
5
  class << self
6
+ BRANCHES = {
7
+ empirical: %i[empirical_natural_basic empirical_natural_applied empirical_social_basic empirical_social_applied],
8
+ formal: %i[formal_basic formal_applied],
9
+ natural: %i[empirical_natural_basic empirical_natural_applied],
10
+ social: %i[empirical_social_basic empirical_social_applied],
11
+ basic: %i[empirical_natural_basic empirical_social_basic formal_basic],
12
+ applied: %i[empirical_natural_applied empirical_social_applied formal_applied]
13
+ }.freeze
14
+
15
+ ##
16
+ # Produces a name of a science
17
+ # You can optionally filter by specifying one or more of the following:
18
+ # `:empirical, :formal, :natural, :social, :basic, :applied`
19
+ # @see https://en.wikipedia.org/wiki/Science#Branches_of_science
20
+ # @see Faker::Educator.subject
21
+ #
22
+ # @param branches [Array<Symbol>]
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Science.science #=> "Space science"
27
+ # Faker::Science.science(:natural, :applied) #=> "Engineering"
28
+ # Faker::Science.science(:formal, :applied) #=> "Computer Science"
29
+ #
30
+ # @faker.version next
31
+ def science(*branches)
32
+ selected = BRANCHES.values.flatten.uniq
33
+ branches.each do |branch|
34
+ selected &= BRANCHES[branch] if BRANCHES.key? branch
35
+ end
36
+
37
+ raise ArgumentError, 'Filters do not match any sciences' if selected.empty?
38
+
39
+ sciences = []
40
+ selected.each do |branch|
41
+ sciences += translate("faker.science.branch.#{branch}")
42
+ end
43
+
44
+ sample(sciences)
45
+ end
46
+
6
47
  ##
7
48
  # Produces the name of a element.
8
49
  #
@@ -29,6 +70,32 @@ module Faker
29
70
  fetch('science.element_symbol')
30
71
  end
31
72
 
73
+ ##
74
+ # Produces the state of an element.
75
+ #
76
+ # @return [String]
77
+ #
78
+ # @example
79
+ # Faker::Science.element_state #=> "Liquid"
80
+ #
81
+ # @faker.version next
82
+ def element_state
83
+ fetch('science.element_state')
84
+ end
85
+
86
+ ##
87
+ # Produces the subcategory of an element.
88
+ #
89
+ # @return [String]
90
+ #
91
+ # @example
92
+ # Faker::Science.element_subcategory #=> "Reactive nonmetal"
93
+ #
94
+ # @faker.version next
95
+ def element_subcategory
96
+ fetch('science.element_subcategory')
97
+ end
98
+
32
99
  ##
33
100
  # Produces the name of a scientist.
34
101
  #
@@ -41,6 +108,47 @@ module Faker
41
108
  def scientist
42
109
  fetch('science.scientist')
43
110
  end
111
+
112
+ ##
113
+ # Produces a scientifically sounding word
114
+ #
115
+ # @return [String]
116
+ #
117
+ # @example
118
+ # Faker::Science.modifier #=> "Quantum"
119
+ # Faker::Science.modifier #=> "Superconductive"
120
+ #
121
+ # @faker.version next
122
+ def modifier
123
+ fetch('science.modifier')
124
+ end
125
+
126
+ ##
127
+ # Produces the name of a scientific tool.
128
+ # By default it uses a science word modifier to generate more diverse data, which can be disabled.
129
+ #
130
+ # @param simple [Boolean] Whether to generate simple realistic tool names, (no Q-word).
131
+ # @return [String]
132
+ #
133
+ # @example
134
+ # Faker::Science.tool #=> "Superconductive Microcentrifuge"
135
+ # Faker::Science.tool #=> "Portable Cryostat"
136
+ # Faker::Science.tool #=> "Quantum Spectrophotometer"
137
+ # Faker::Science.tool(simple: true) #=> "Microcentrifuge"
138
+ #
139
+ # @faker.version next
140
+ def tool(simple: false)
141
+ tool = fetch('science.tool')
142
+ return tool if simple
143
+
144
+ # Makes sure the modifier are different
145
+ loop do
146
+ modifier = self.modifier
147
+ break unless tool.start_with?(modifier)
148
+ end
149
+
150
+ "#{modifier} #{tool}"
151
+ end
44
152
  end
45
153
  end
46
154
  end
@@ -17,11 +17,7 @@ module Faker
17
17
  # #=> "alert('Hello World!');"
18
18
  #
19
19
  # @faker.version 1.9.0
20
- def hello_world(legacy_lang = NOT_GIVEN, lang: :ruby)
21
- warn_for_deprecated_arguments do |keywords|
22
- keywords << :lang if legacy_lang != NOT_GIVEN
23
- end
24
-
20
+ def hello_world(lang: :ruby)
25
21
  fetch("source.hello_world.#{lang}")
26
22
  end
27
23
 
@@ -39,13 +35,7 @@ module Faker
39
35
  # #=> "console.log('foo bar');"
40
36
  #
41
37
  # @faker.version 1.9.0
42
- def print(legacy_str = NOT_GIVEN, legacy_lang = NOT_GIVEN, str: 'some string', lang: :ruby)
43
- warn_for_deprecated_arguments do |keywords|
44
- keywords << :str if legacy_str != NOT_GIVEN
45
- end
46
- warn_for_deprecated_arguments do |keywords|
47
- keywords << :lang if legacy_lang != NOT_GIVEN
48
- end
38
+ def print(str: 'some string', lang: :ruby)
49
39
  code = fetch("source.print.#{lang}")
50
40
  code.gsub('faker_string_to_print', str)
51
41
  end
@@ -65,10 +55,7 @@ module Faker
65
55
  # # }"
66
56
  #
67
57
  # @faker.version 1.9.0
68
- def print_1_to_10(legacy_lang = NOT_GIVEN, lang: :ruby)
69
- warn_for_deprecated_arguments do |keywords|
70
- keywords << :lang if legacy_lang != NOT_GIVEN
71
- end
58
+ def print_1_to_10(lang: :ruby)
72
59
  fetch("source.print_1_to_10.#{lang}")
73
60
  end
74
61
  end
@@ -13,7 +13,7 @@ module Faker
13
13
  #
14
14
  # @faker.version 1.9.2
15
15
  def id_number
16
- Faker::IDNumber.south_african_id_number
16
+ Faker::IdNumber.south_african_id_number
17
17
  end
18
18
 
19
19
  ##
@@ -26,7 +26,7 @@ module Faker
26
26
  #
27
27
  # @faker.version 1.9.2
28
28
  def valid_id_number
29
- Faker::IDNumber.valid_south_african_id_number
29
+ Faker::IdNumber.valid_south_african_id_number
30
30
  end
31
31
 
32
32
  ##
@@ -39,7 +39,7 @@ module Faker
39
39
  #
40
40
  # @faker.version 1.9.2
41
41
  def invalid_id_number
42
- Faker::IDNumber.invalid_south_african_id_number
42
+ Faker::IdNumber.invalid_south_african_id_number
43
43
  end
44
44
 
45
45
  ##
@@ -10,20 +10,14 @@ module Faker
10
10
  # @return [String]
11
11
  #
12
12
  # @example
13
- # rubocop:disable Style/AsciiComments
14
13
  # Faker::String.random #=> "3 뇦\u0017&y\u{3A109}$8^4* 녹豿4좘툢ꔾ쉙6ɉ\uA6 8TN畀챵|\"3쇤Ŵ"
15
14
  # Faker::String.random(length: 4) #=> "⼨%0*"
16
15
  # Faker::String.random(length: 3..12) #=> "\u{69FDC};秨툫"
17
16
  # Faker::String.random(length: [0, 6]) #=> "I轤𣴒P溟L"
18
17
  # Faker::String.random(length: [1, (2..5), [3, 6], nil]) #=> "葓L#ћ"
19
- # rubocop:enable Style/AsciiComments
20
18
  #
21
19
  # @faker.version 1.9.0
22
- def random(legacy_length = NOT_GIVEN, length: 32)
23
- warn_for_deprecated_arguments do |keywords|
24
- keywords << :length if legacy_length != NOT_GIVEN
25
- end
26
-
20
+ def random(length: 32)
27
21
  utf8string select_a length
28
22
  end
29
23
 
@@ -14,11 +14,7 @@ module Faker
14
14
  # Faker::Stripe.valid_card(card_type: "visa_debit") #=> "4000056655665556"
15
15
  #
16
16
  # @faker.version 1.9.0
17
- def valid_card(legacy_card_type = NOT_GIVEN, card_type: nil)
18
- warn_for_deprecated_arguments do |keywords|
19
- keywords << :card_type if legacy_card_type != NOT_GIVEN
20
- end
21
-
17
+ def valid_card(card_type: nil)
22
18
  valid_cards = translate('faker.stripe.valid_cards').keys
23
19
 
24
20
  if card_type.nil?
@@ -44,11 +40,7 @@ module Faker
44
40
  # Faker::Stripe.valid_token(card_type: "mc_debit") #=> "tok_mastercard_debit"
45
41
  #
46
42
  # @faker.version 1.9.0
47
- def valid_token(legacy_card_type = NOT_GIVEN, card_type: nil)
48
- warn_for_deprecated_arguments do |keywords|
49
- keywords << :card_type if legacy_card_type != NOT_GIVEN
50
- end
51
-
43
+ def valid_token(card_type: nil)
52
44
  valid_tokens = translate('faker.stripe.valid_tokens').keys
53
45
 
54
46
  if card_type.nil?
@@ -73,11 +65,7 @@ module Faker
73
65
  # Faker::Stripe.invalid_card(card_error: "addressZipFail") #=> "4000000000000010"
74
66
  #
75
67
  # @faker.version 1.9.0
76
- def invalid_card(legacy_card_error = NOT_GIVEN, card_error: nil)
77
- warn_for_deprecated_arguments do |keywords|
78
- keywords << :card_error if legacy_card_error != NOT_GIVEN
79
- end
80
-
68
+ def invalid_card(card_error: nil)
81
69
  invalid_cards = translate('faker.stripe.invalid_cards').keys
82
70
 
83
71
  if card_error.nil?
@@ -130,11 +118,7 @@ module Faker
130
118
  # Faker::Stripe.ccv(card_type: "amex") #=> "1234"
131
119
  #
132
120
  # @faker.version 1.9.0
133
- def ccv(legacy_card_type = NOT_GIVEN, card_type: nil)
134
- warn_for_deprecated_arguments do |keywords|
135
- keywords << :card_type if legacy_card_type != NOT_GIVEN
136
- end
137
-
121
+ def ccv(card_type: nil)
138
122
  (card_type.to_s == 'amex' ? rand_in_range(1000, 9999) : rand_in_range(100, 999)).to_s
139
123
  end
140
124
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Tea < Base
5
+ flexible :tea
6
+
7
+ class << self
8
+ ##
9
+ # Produces a random variety or blend of tea.
10
+ #
11
+ # @param type [String, nil] the type of tea to query for (valid types: 'Black', 'Green', 'Oolong', 'White', and 'Herbal')
12
+ # @return [String] a variety of tea
13
+ #
14
+ # @example
15
+ # Faker::Tea.variety
16
+ # #=> "Earl Grey"
17
+ #
18
+ # @example
19
+ # Faker::Tea.variety(type: 'Green')
20
+ # #=> "Jasmine"
21
+ # @faker.version next
22
+ def variety(type: nil)
23
+ type ||= fetch('tea.type')
24
+ fetch "tea.variety.#{type.downcase}"
25
+ end
26
+
27
+ ##
28
+ # Produces a random type of tea.
29
+ #
30
+ # @return [String] a type of tea
31
+ #
32
+ # @example
33
+ # Faker::Tea.type
34
+ # #=> "Green"
35
+ # @faker.version next
36
+ def type
37
+ fetch 'tea.type'
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Faker
4
- class Show < Base
4
+ class Theater < Base
5
5
  class << self
6
6
  ##
7
7
  # Produces the name of a musical for an older audience
@@ -9,12 +9,12 @@ module Faker
9
9
  # @return [String]
10
10
  #
11
11
  # @example
12
- # Faker::Alphanumeric.alpha
13
- # #=> "West Side Story"
12
+ # Faker::Theater.adult_musical
13
+ # #=> "Mamma Mia!"
14
14
  #
15
15
  # @faker.version 2.13.0
16
16
  def adult_musical
17
- fetch('show.adult_musical')
17
+ fetch('theater.adult_musical')
18
18
  end
19
19
 
20
20
  ##
@@ -23,12 +23,12 @@ module Faker
23
23
  # @return [String]
24
24
  #
25
25
  # @example
26
- # Faker::Alphanumeric.alpha
26
+ # Faker::Theater.kids_musical
27
27
  # #=> "Into the Woods JR."
28
28
  #
29
29
  # @faker.version 2.13.0
30
30
  def kids_musical
31
- fetch('show.kids_musical')
31
+ fetch('theater.kids_musical')
32
32
  end
33
33
 
34
34
  ##
@@ -37,13 +37,16 @@ module Faker
37
37
  # @return [String]
38
38
  #
39
39
  # @example
40
- # Faker::Alphanumeric.alpha
40
+ # Faker::Theater.play
41
41
  # #=> "Death of a Salesman"
42
42
  #
43
43
  # @faker.version 2.13.0
44
44
  def play
45
- fetch('show.play')
45
+ fetch('theater.play')
46
46
  end
47
47
  end
48
48
  end
49
+
50
+ include Faker::Deprecator
51
+ deprecate_generator('Show', Theater)
49
52
  end
@@ -13,9 +13,6 @@ module Faker
13
13
  }.freeze
14
14
 
15
15
  class << self
16
- # rubocop:disable Metrics/ParameterLists
17
- # rubocop:disable Style/AsciiComments
18
-
19
16
  ##
20
17
  # Produce a random time between two times.
21
18
  #
@@ -38,20 +35,13 @@ module Faker
38
35
  # Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :long) #=> "2018年10月16日(火) 10時48分27秒 -0500"
39
36
  #
40
37
  # @faker.version 1.5.0
41
- def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, format: nil)
42
- warn_for_deprecated_arguments do |keywords|
43
- keywords << :from if legacy_from != NOT_GIVEN
44
- keywords << :to if legacy_to != NOT_GIVEN
45
- keywords << :format if legacy_format != NOT_GIVEN
46
- end
47
-
38
+ def between(from:, to:, format: nil)
48
39
  from = get_time_object(from)
49
40
  to = get_time_object(to)
50
41
 
51
42
  time = Faker::Base.rand_in_range(from, to)
52
43
  time_with_format(time, format)
53
44
  end
54
- # rubocop:enable Style/AsciiComments
55
45
 
56
46
  ##
57
47
  # Produce a random time between two dates.
@@ -81,14 +71,7 @@ module Faker
81
71
  # #=> "Fri, 19 Oct 2018 15:17:46 -0500"
82
72
  #
83
73
  # @faker.version 1.0.0
84
- def between_dates(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, period: :all, format: nil)
85
- warn_for_deprecated_arguments do |keywords|
86
- keywords << :from if legacy_from != NOT_GIVEN
87
- keywords << :to if legacy_to != NOT_GIVEN
88
- keywords << :period if legacy_period != NOT_GIVEN
89
- keywords << :format if legacy_format != NOT_GIVEN
90
- end
91
-
74
+ def between_dates(from:, to:, period: :all, format: nil)
92
75
  date = Faker::Date.between(from: from, to: to)
93
76
  time = date_with_random_time(date, period)
94
77
  time_with_format(time, format)
@@ -109,13 +92,7 @@ module Faker
109
92
  # #=> "October 21, 2018 20:47"
110
93
  #
111
94
  # @faker.version 1.5.0
112
- def forward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
113
- warn_for_deprecated_arguments do |keywords|
114
- keywords << :days if legacy_days != NOT_GIVEN
115
- keywords << :period if legacy_period != NOT_GIVEN
116
- keywords << :format if legacy_format != NOT_GIVEN
117
- end
118
-
95
+ def forward(days: 365, period: :all, format: nil)
119
96
  time_with_format(date_with_random_time(Faker::Date.forward(days: days), period), format)
120
97
  end
121
98
 
@@ -134,16 +111,9 @@ module Faker
134
111
  # #=> "14 Oct 07:44"
135
112
  #
136
113
  # @faker.version 1.5.0
137
- def backward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
138
- warn_for_deprecated_arguments do |keywords|
139
- keywords << :days if legacy_days != NOT_GIVEN
140
- keywords << :period if legacy_period != NOT_GIVEN
141
- keywords << :format if legacy_format != NOT_GIVEN
142
- end
143
-
114
+ def backward(days: 365, period: :all, format: nil)
144
115
  time_with_format(date_with_random_time(Faker::Date.backward(days: days), period), format)
145
116
  end
146
- # rubocop:enable Metrics/ParameterLists
147
117
 
148
118
  private
149
119
 
@@ -16,14 +16,9 @@ module Faker
16
16
  # Faker::Twitter.user(include_email: true) # Simulate an authenticated user with the email permission
17
17
  #
18
18
  # @faker.version 1.7.3
19
- def user(legacy_include_status = NOT_GIVEN, legacy_include_email = NOT_GIVEN, include_status: true, include_email: false)
20
- warn_for_deprecated_arguments do |keywords|
21
- keywords << :include_status if legacy_include_status != NOT_GIVEN
22
- keywords << :include_email if legacy_include_email != NOT_GIVEN
23
- end
24
-
19
+ def user(include_status: true, include_email: false)
25
20
  user_id = id
26
- background_image_url = Faker::LoremPixel.image(size: '600x400') # TODO: Make the dimensions change
21
+ background_image_url = Faker::LoremFlickr.image(size: '600x400')
27
22
  profile_image_url = Faker::Avatar.image(slug: user_id, size: '48x48')
28
23
  user = {
29
24
  id: user_id,
@@ -51,7 +46,7 @@ module Faker
51
46
  profile_background_image_url_https: background_image_url,
52
47
  profile_background_image_url: background_image_url.sub('https://', 'http://'),
53
48
  profile_background_tile: Faker::Boolean.boolean(true_ratio: 0.1),
54
- profile_banner_url: Faker::LoremPixel.image(size: '1500x500'),
49
+ profile_banner_url: Faker::LoremFlickr.image(size: '1500x500'),
55
50
  profile_image_url_https: profile_image_url,
56
51
  profile_image_url: profile_image_url.sub('https://', 'http://'),
57
52
  profile_link_color: Faker::Color.hex_color,
@@ -68,7 +63,7 @@ module Faker
68
63
  verified: Faker::Boolean.boolean(true_ratio: 0.1)
69
64
  }
70
65
  user[:status] = Faker::Twitter.status(include_user: false) if include_status
71
- user[:email] = Faker::Internet.safe_email if include_email
66
+ user[:email] = Faker::Internet.email if include_email
72
67
  user
73
68
  end
74
69
 
@@ -85,12 +80,7 @@ module Faker
85
80
  # Faker::Twitter.status(include_photo: true) # Includes entities for an attached image
86
81
  #
87
82
  # @faker.version 1.7.3
88
- def status(legacy_include_user = NOT_GIVEN, legacy_include_photo = NOT_GIVEN, include_user: true, include_photo: false)
89
- warn_for_deprecated_arguments do |keywords|
90
- keywords << :include_user if legacy_include_user != NOT_GIVEN
91
- keywords << :include_photo if legacy_include_photo != NOT_GIVEN
92
- end
93
-
83
+ def status(include_user: true, include_photo: false)
94
84
  status_id = id
95
85
  status = {
96
86
  id: status_id,
@@ -161,11 +151,7 @@ module Faker
161
151
  }
162
152
  end
163
153
 
164
- def status_entities(legacy_include_photo = NOT_GIVEN, include_photo: false)
165
- warn_for_deprecated_arguments do |keywords|
166
- keywords << :include_photo if legacy_include_photo != NOT_GIVEN
167
- end
168
-
154
+ def status_entities(include_photo: false)
169
155
  entities = {
170
156
  hashtags: [],
171
157
  symbols: [],
@@ -177,9 +163,7 @@ module Faker
177
163
  end
178
164
 
179
165
  def photo_entity
180
- # TODO: Dynamic image sizes
181
- # TODO: Return accurate indices
182
- media_url = Faker::LoremPixel.image(size: '1064x600')
166
+ media_url = Faker::LoremFlickr.image(size: '1064x600')
183
167
  media_id = id
184
168
  {
185
169
  id: media_id,
@@ -16,17 +16,11 @@ module Faker
16
16
  # Faker::Types.rb_string #=> "foobar"
17
17
  #
18
18
  # @faker.version 1.8.6
19
- def rb_string(legacy_words = NOT_GIVEN, words: 1)
20
- warn_for_deprecated_arguments do |keywords|
21
- keywords << :words if legacy_words != NOT_GIVEN
22
- end
23
-
19
+ def rb_string(words: 1)
24
20
  resolved_num = resolve(words)
25
- word_list =
26
- translate('faker.lorem.words')
27
-
21
+ word_list = translate('faker.lorem.words')
28
22
  word_list *= ((resolved_num / word_list.length) + 1)
29
- shuffle(word_list)[0, resolved_num].join(' ')
23
+ sample(word_list, resolved_num).join(' ')
30
24
  end
31
25
 
32
26
  ##
@@ -51,12 +45,7 @@ module Faker
51
45
  # Faker::Types.rb_integer #=> 1
52
46
  #
53
47
  # @faker.version 1.8.6
54
- def rb_integer(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 100)
55
- warn_for_deprecated_arguments do |keywords|
56
- keywords << :from if legacy_from != NOT_GIVEN
57
- keywords << :to if legacy_to != NOT_GIVEN
58
- end
59
-
48
+ def rb_integer(from: 0, to: 100)
60
49
  rand(from..to).to_i
61
50
  end
62
51
 
@@ -72,15 +61,11 @@ module Faker
72
61
  # Faker::Types.rb_hash(number: 2) #=> {name: "bob", last: "marley"}
73
62
  #
74
63
  # @faker.version 1.8.6
75
- def rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type)
76
- warn_for_deprecated_arguments do |keywords|
77
- keywords << :number if legacy_number != NOT_GIVEN
78
- keywords << :type if legacy_type != NOT_GIVEN
79
- end
80
-
64
+ def rb_hash(number: 1, type: -> { random_type })
81
65
  {}.tap do |hsh|
82
66
  Lorem.words(number: number * 2).uniq.first(number).each do |s|
83
- hsh.merge!(s.to_sym => type)
67
+ value = type.is_a?(Proc) ? type.call : type
68
+ hsh.merge!(s.to_sym => value)
84
69
  end
85
70
  end
86
71
  end
@@ -97,12 +82,8 @@ module Faker
97
82
  # Faker::Types.complex_rb_hash(number: 2) #=> {user: {first: "bob", last: "marley"}, son: ["damien", "marley"]}
98
83
  #
99
84
  # @faker.version 1.8.6
100
- def complex_rb_hash(legacy_number = NOT_GIVEN, number: 1)
101
- warn_for_deprecated_arguments do |keywords|
102
- keywords << :number if legacy_number != NOT_GIVEN
103
- end
104
-
105
- rb_hash(number: number, type: random_complex_type)
85
+ def complex_rb_hash(number: 1)
86
+ rb_hash(number: number, type: -> { random_complex_type })
106
87
  end
107
88
 
108
89
  ##
@@ -114,16 +95,13 @@ module Faker
114
95
  # @example
115
96
  # Faker::Types.rb_array #=> ["a"]
116
97
  # Faker::Types.rb_array(len: 4) #=> ["a", 1, 2, "bob"]
98
+ # Faker::Types.rb_array(len: 2, type: -> { Faker::Types.rb_string }) #=> ["cat", "foo"]
117
99
  #
118
100
  # @faker.version 1.8.6
119
- def rb_array(legacy_len = NOT_GIVEN, len: 1)
120
- warn_for_deprecated_arguments do |keywords|
121
- keywords << :len if legacy_len != NOT_GIVEN
122
- end
123
-
101
+ def rb_array(len: 1, type: -> { random_type })
124
102
  [].tap do |ar|
125
103
  len.times do
126
- ar.push random_type
104
+ ar.push type.is_a?(Proc) ? type.call : type
127
105
  end
128
106
  end
129
107
  end