faker 2.11.0 → 2.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +372 -13
  3. data/History.md +4 -4
  4. data/README.md +27 -3
  5. data/lib/faker/blockchain/aeternity.rb +4 -4
  6. data/lib/faker/blockchain/bitcoin.rb +2 -2
  7. data/lib/faker/blockchain/tezos.rb +30 -2
  8. data/lib/faker/books/dune.rb +15 -2
  9. data/lib/faker/books/lovecraft.rb +8 -4
  10. data/lib/faker/default/address.rb +35 -5
  11. data/lib/faker/default/app.rb +1 -1
  12. data/lib/faker/default/avatar.rb +1 -1
  13. data/lib/faker/default/bank.rb +96 -3
  14. data/lib/faker/default/barcode.rb +165 -0
  15. data/lib/faker/default/beer.rb +3 -3
  16. data/lib/faker/default/blood.rb +48 -0
  17. data/lib/faker/default/business.rb +1 -1
  18. data/lib/faker/default/camera.rb +46 -0
  19. data/lib/faker/default/cannabis.rb +10 -0
  20. data/lib/faker/default/chile_rut.rb +47 -3
  21. data/lib/faker/default/chuck_norris.rb +1 -0
  22. data/lib/faker/default/code.rb +98 -17
  23. data/lib/faker/default/commerce.rb +74 -11
  24. data/lib/faker/default/company.rb +96 -11
  25. data/lib/faker/default/compass.rb +135 -0
  26. data/lib/faker/default/computer.rb +63 -0
  27. data/lib/faker/default/construction.rb +54 -0
  28. data/lib/faker/default/cosmere.rb +90 -0
  29. data/lib/faker/default/crypto.rb +4 -4
  30. data/lib/faker/default/crypto_coin.rb +45 -0
  31. data/lib/faker/default/date.rb +16 -12
  32. data/lib/faker/default/driving_licence.rb +67 -1
  33. data/lib/faker/default/drone.rb +332 -0
  34. data/lib/faker/default/educator.rb +13 -0
  35. data/lib/faker/default/faker_adjective.rb +35 -0
  36. data/lib/faker/default/file.rb +53 -2
  37. data/lib/faker/default/finance.rb +45 -0
  38. data/lib/faker/default/food.rb +1 -1
  39. data/lib/faker/default/gender.rb +1 -1
  40. data/lib/faker/default/hipster.rb +107 -10
  41. data/lib/faker/default/id_number.rb +88 -2
  42. data/lib/faker/default/internet.rb +266 -12
  43. data/lib/faker/default/internet_http.rb +48 -0
  44. data/lib/faker/default/invoice.rb +33 -6
  45. data/lib/faker/default/json.rb +61 -5
  46. data/lib/faker/default/lorem.rb +160 -5
  47. data/lib/faker/default/lorem_flickr.rb +67 -7
  48. data/lib/faker/default/lorem_pixel.rb +23 -0
  49. data/lib/faker/default/markdown.rb +91 -0
  50. data/lib/faker/default/measurement.rb +93 -2
  51. data/lib/faker/default/military.rb +26 -0
  52. data/lib/faker/default/mountain.rb +33 -0
  53. data/lib/faker/default/name.rb +98 -0
  54. data/lib/faker/default/nhs.rb +19 -0
  55. data/lib/faker/default/number.rb +28 -13
  56. data/lib/faker/default/omniauth.rb +62 -14
  57. data/lib/faker/default/phone_number.rb +88 -5
  58. data/lib/faker/default/placeholdit.rb +23 -1
  59. data/lib/faker/default/relationship.rb +1 -1
  60. data/lib/faker/default/slack_emoji.rb +81 -0
  61. data/lib/faker/default/south_africa.rb +90 -0
  62. data/lib/faker/default/space.rb +1 -1
  63. data/lib/faker/default/string.rb +20 -3
  64. data/lib/faker/default/stripe.rb +64 -3
  65. data/lib/faker/default/twitter.rb +35 -0
  66. data/lib/faker/default/types.rb +84 -3
  67. data/lib/faker/default/university.rb +45 -0
  68. data/lib/faker/default/vehicle.rb +184 -4
  69. data/lib/faker/default/verb.rb +45 -0
  70. data/lib/faker/default/world_cup.rb +4 -4
  71. data/lib/faker/fantasy/tolkien.rb +67 -0
  72. data/lib/faker/games/clash_of_clans.rb +48 -0
  73. data/lib/faker/games/control.rb +113 -0
  74. data/lib/faker/games/dnd.rb +136 -0
  75. data/lib/faker/games/elder_scrolls.rb +26 -0
  76. data/lib/faker/games/heroes.rb +13 -0
  77. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  78. data/lib/faker/games/minecraft.rb +113 -0
  79. data/lib/faker/games/street_fighter.rb +61 -0
  80. data/lib/faker/games/super_mario.rb +48 -0
  81. data/lib/faker/games/touhou.rb +75 -0
  82. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  83. data/lib/faker/games/world_of_warcraft.rb +26 -1
  84. data/lib/faker/japanese_media/conan.rb +48 -0
  85. data/lib/faker/japanese_media/doraemon.rb +48 -0
  86. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  87. data/lib/faker/japanese_media/naruto.rb +61 -0
  88. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  89. data/lib/faker/movies/departed.rb +49 -0
  90. data/lib/faker/movies/hobbit.rb +4 -4
  91. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  92. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  93. data/lib/faker/movies/movie.rb +13 -0
  94. data/lib/faker/movies/room.rb +63 -0
  95. data/lib/faker/movies/star_wars.rb +74 -2
  96. data/lib/faker/music/hiphop.rb +48 -0
  97. data/lib/faker/music/opera.rb +237 -1
  98. data/lib/faker/music/pearl_jam.rb +50 -0
  99. data/lib/faker/music/phish.rb +27 -1
  100. data/lib/faker/music/prince.rb +64 -0
  101. data/lib/faker/music/rock_band.rb +12 -0
  102. data/lib/faker/music/rush.rb +37 -0
  103. data/lib/faker/music/show.rb +49 -0
  104. data/lib/faker/quotes/quote.rb +80 -1
  105. data/lib/faker/quotes/rajnikanth.rb +1 -0
  106. data/lib/faker/quotes/shakespeare.rb +70 -0
  107. data/lib/faker/sports/volleyball.rb +74 -0
  108. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  109. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  110. data/lib/faker/tv_shows/buffy.rb +17 -4
  111. data/lib/faker/tv_shows/dr_who.rb +1 -1
  112. data/lib/faker/tv_shows/final_space.rb +51 -0
  113. data/lib/faker/tv_shows/futurama.rb +65 -0
  114. data/lib/faker/tv_shows/simpsons.rb +14 -0
  115. data/lib/faker/tv_shows/suits.rb +37 -0
  116. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  117. data/lib/faker/version.rb +1 -1
  118. data/lib/faker.rb +28 -23
  119. data/lib/helpers/base58.rb +1 -1
  120. data/lib/helpers/char.rb +22 -27
  121. data/lib/helpers/unique_generator.rb +0 -2
  122. data/lib/locales/de-AT.yml +4 -2
  123. data/lib/locales/de-CH.yml +1696 -1
  124. data/lib/locales/de.yml +4 -2
  125. data/lib/locales/en/address.yml +2 -0
  126. data/lib/locales/en/adjective.yml +179 -0
  127. data/lib/locales/en/animal.yml +1 -1
  128. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  129. data/lib/locales/en/bank.yml +1 -1
  130. data/lib/locales/en/barcode.yml +24 -0
  131. data/lib/locales/en/big_bang_theory.yml +38 -0
  132. data/lib/locales/en/blood.yml +13 -0
  133. data/lib/locales/en/buffy.yml +1 -1
  134. data/lib/locales/en/camera.yml +611 -0
  135. data/lib/locales/en/clash_of_clan.yml +101 -0
  136. data/lib/locales/en/company.yml +2 -2
  137. data/lib/locales/en/computer.yml +36 -0
  138. data/lib/locales/en/conan.yml +171 -0
  139. data/lib/locales/en/control.yml +247 -0
  140. data/lib/locales/en/demographic.yml +218 -5
  141. data/lib/locales/en/departed.yml +50 -0
  142. data/lib/locales/en/device.yml +112 -4
  143. data/lib/locales/en/dnd.yml +451 -0
  144. data/lib/locales/en/doraemon.yml +286 -0
  145. data/lib/locales/en/dota.yml +531 -63
  146. data/lib/locales/en/dragon_ball.yml +243 -1
  147. data/lib/locales/en/driving_license.yml +181 -0
  148. data/lib/locales/en/drone.yml +95 -0
  149. data/lib/locales/en/dune.yml +401 -131
  150. data/lib/locales/en/educator.yml +6 -0
  151. data/lib/locales/en/elder_scrolls.yml +583 -9
  152. data/lib/locales/en/fallout.yml +311 -133
  153. data/lib/locales/en/final_space.yml +37 -0
  154. data/lib/locales/en/finance.yml +53 -0
  155. data/lib/locales/en/football.yml +3 -3
  156. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  157. data/lib/locales/en/futurama.yml +344 -0
  158. data/lib/locales/en/half_life.yml +84 -3
  159. data/lib/locales/en/heroes.yml +408 -3
  160. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  161. data/lib/locales/en/house.yml +1 -1
  162. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  163. data/lib/locales/en/jack_handey.yml +54 -0
  164. data/lib/locales/en/league_of_legends.yml +285 -6
  165. data/lib/locales/en/lebowski.yml +1 -1
  166. data/lib/locales/en/military.yml +179 -5
  167. data/lib/locales/en/minecraft.yml +663 -0
  168. data/lib/locales/en/mountain.yml +158 -0
  169. data/lib/locales/en/movie.yml +192 -1
  170. data/lib/locales/en/music.yml +451 -29
  171. data/lib/locales/en/myst.yml +87 -31
  172. data/lib/locales/en/name.yml +5 -4
  173. data/lib/locales/en/naruto.yml +231 -0
  174. data/lib/locales/en/one_piece.yml +2 -2
  175. data/lib/locales/en/opera.yml +168 -0
  176. data/lib/locales/en/overwatch.yml +2650 -2622
  177. data/lib/locales/en/pearl_jam.yml +213 -0
  178. data/lib/locales/en/phish.yml +392 -1
  179. data/lib/locales/en/pokemon.yml +417 -4
  180. data/lib/locales/en/prince.yml +227 -0
  181. data/lib/locales/en/quote.yml +692 -163
  182. data/lib/locales/en/rock_band.yml +1 -0
  183. data/lib/locales/en/room.yml +68 -0
  184. data/lib/locales/en/rush.yml +32 -0
  185. data/lib/locales/en/shakespeare.yml +21 -24
  186. data/lib/locales/en/show.yml +597 -0
  187. data/lib/locales/en/simpsons.yml +668 -0
  188. data/lib/locales/en/source.yml +30 -0
  189. data/lib/locales/en/star_trek.yml +1 -1
  190. data/lib/locales/en/star_wars.yml +568 -220
  191. data/lib/locales/en/street_fighter.yml +1524 -0
  192. data/lib/locales/en/studio_ghibli.yml +107 -0
  193. data/lib/locales/en/suits.yml +45 -0
  194. data/lib/locales/en/super_mario.yml +58 -0
  195. data/lib/locales/en/super_smash_bros.yml +18 -4
  196. data/lib/locales/en/tolkien.yml +2453 -0
  197. data/lib/locales/en/touhou.yml +839 -0
  198. data/lib/locales/en/volleyball.yml +501 -0
  199. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  200. data/lib/locales/en/witcher.yml +389 -7
  201. data/lib/locales/en/world_of_warcraft.yml +122 -4
  202. data/lib/locales/en/zelda.yml +962 -4
  203. data/lib/locales/en-AU.yml +50 -10
  204. data/lib/locales/en-CA.yml +2 -0
  205. data/lib/locales/en-GB.yml +1 -1
  206. data/lib/locales/en-IND.yml +2 -1
  207. data/lib/locales/en-MS.yml +2 -1
  208. data/lib/locales/en-NEP.yml +4 -1
  209. data/lib/locales/en-NZ.yml +3 -1
  210. data/lib/locales/en-PAK.yml +2 -1
  211. data/lib/locales/en-SG.yml +2 -1
  212. data/lib/locales/en-US.yml +36 -10
  213. data/lib/locales/en-au-ocker.yml +2 -1
  214. data/lib/locales/en.yml +0 -3
  215. data/lib/locales/es-AR.yml +4603 -0
  216. data/lib/locales/es.yml +56 -0
  217. data/lib/locales/fi-FI.yml +1 -1
  218. data/lib/locales/fr-CA.yml +21 -5
  219. data/lib/locales/fr-CH.yml +2 -2
  220. data/lib/locales/fr.yml +12 -6
  221. data/lib/locales/id.yml +3 -1
  222. data/lib/locales/it.yml +2 -1
  223. data/lib/locales/ja.yml +18 -1
  224. data/lib/locales/ko.yml +94 -2
  225. data/lib/locales/nb-NO.yml +4 -2
  226. data/lib/locales/pt-BR.yml +2 -1
  227. data/lib/locales/pt.yml +3 -1
  228. data/lib/locales/ru.yml +3 -1
  229. data/lib/locales/sk.yml +4 -2
  230. data/lib/locales/uk.yml +2 -0
  231. metadata +90 -23
  232. data/lib/locales/en/hobbit.yml +0 -19
  233. data/lib/locales/en/lord_of_the_rings.yml +0 -6
data/README.md CHANGED
@@ -1,8 +1,7 @@
1
-
2
1
  ![logotype a happy-07](https://user-images.githubusercontent.com/36028424/40263395-4318481e-5b44-11e8-92e5-3dcc1ce169b3.png)
3
2
 
4
3
  # Faker
5
- [![Build Status](https://travis-ci.org/faker-ruby/faker.svg?branch=master)](https://travis-ci.org/faker-ruby/faker)
4
+ [![Tests](https://github.com/faker-ruby/faker/workflows/Tests/badge.svg)](https://github.com/faker-ruby/faker/actions?query=workflow%3ATests)
6
5
  [![Gem Version](https://badge.fury.io/rb/faker.svg)](https://badge.fury.io/rb/faker)
7
6
  [![Inline docs](https://inch-ci.org/github/faker-ruby/faker.svg?branch=master)](https://inch-ci.org/github/faker-ruby/faker)
8
7
  [![Test Coverage](https://api.codeclimate.com/v1/badges/ef54c7f9df86e965d64b/test_coverage)](https://codeclimate.com/github/stympy/faker/test_coverage)
@@ -95,7 +94,7 @@ manually set values).
95
94
  # Faker::<generator>.unique.exclude(method, arguments, list)
96
95
 
97
96
  # Add 'azerty' and 'wxcvbn' to the string generator with 6 char length
98
- Faker::Lorem.unique.exclude :string, [6], %w[azerty wxcvbn]
97
+ Faker::Lorem.unique.exclude :string, [number: 6], %w[azerty wxcvbn]
99
98
  ```
100
99
 
101
100
  ### Deterministic Random
@@ -130,7 +129,9 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
130
129
  - [Faker::Artist](doc/default/artist.md)
131
130
  - [Faker::Avatar](doc/default/avatar.md)
132
131
  - [Faker::Bank](doc/default/bank.md)
132
+ - [Faker::Barcode](doc/default/barcode.md)
133
133
  - [Faker::Beer](doc/default/beer.md)
134
+ - [Faker::Blood](doc/default/blood.md)
134
135
  - [Faker::Boolean](doc/default/boolean.md)
135
136
  - [Faker::BossaNova](doc/default/bossa_nova.md)
136
137
  - [Faker::Business](doc/default/business.md)
@@ -144,6 +145,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
144
145
  - [Faker::Commerce](doc/default/commerce.md)
145
146
  - [Faker::Company](doc/default/company.md)
146
147
  - [Faker::Compass](doc/default/compass.md)
148
+ - [Faker::Computer](doc/default/computer.md)
147
149
  - [Faker::Construction](doc/default/construction.md)
148
150
  - [Faker::Cosmere](doc/default/cosmere.md)
149
151
  - [Faker::Crypto](doc/default/crypto.md)
@@ -155,6 +157,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
155
157
  - [Faker::Dessert](doc/default/dessert.md)
156
158
  - [Faker::Device](doc/default/device.md)
157
159
  - [Faker::DrivingLicence](doc/default/driving_licence.md)
160
+ - [Faker::Drone](doc/drone/drone.md)
158
161
  - [Faker::Educator](doc/default/educator.md)
159
162
  - [Faker::ElectricalComponents](doc/default/electrical_components.md)
160
163
  - [Faker::Esport](doc/default/esport.md)
@@ -182,6 +185,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
182
185
  - [Faker::Marketing](doc/default/marketing.md)
183
186
  - [Faker::Measurement](doc/default/measurement.md)
184
187
  - [Faker::Military](doc/default/military.md)
188
+ - [Faker::Mountain](doc/default/mountain.md)
185
189
  - [Faker::Name](doc/default/name.md)
186
190
  - [Faker::Nation](doc/default/nation.md)
187
191
  - [Faker::NatoPhoneticAlphabet](doc/default/nato_phonetic_alphabet.md)
@@ -231,6 +235,8 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
231
235
 
232
236
  ### Games
233
237
  - [Faker::Game](doc/games/game.md)
238
+ - [Faker::Games::ClashOfClans](doc/games/clash_of_clans.md)
239
+ - [Faker::Games::DnD](doc/games/dnd.md)
234
240
  - [Faker::Games::Dota](doc/games/dota.md)
235
241
  - [Faker::Games::ElderScrolls](doc/games/elder_scrolls.md)
236
242
  - [Faker::Games::Fallout](doc/games/fallout.md)
@@ -238,11 +244,16 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
238
244
  - [Faker::Games::Heroes](doc/games/heroes.md)
239
245
  - [Faker::Games::HeroesOfTheStorm](doc/games/heroes_of_the_storm.md)
240
246
  - [Faker::Games::LeagueOfLegends](doc/games/league_of_legends.md)
247
+ - [Faker::Games::Minecraft](doc/games/minecraft.md)
241
248
  - [Faker::Games::Myst](doc/games/myst.md)
242
249
  - [Faker::Games::Overwatch](doc/games/overwatch.md)
243
250
  - [Faker::Games::Pokemon](doc/games/pokemon.md)
244
251
  - [Faker::Games::SonicTheHedgehog](doc/games/sonic_the_hedgehog.md)
252
+ - [Faker::Games::StreetFighter](doc/games/street_fighter.md)
253
+ - [Faker::Games::SuperMario](doc/games/super_mario.md)
245
254
  - [Faker::Games::SuperSmashBros](doc/games/super_smash_bros.md)
255
+ - [Faker::Games::Touhou](doc/games/touhou.md)
256
+ - [Faker::Games::WarhammerFantasy](doc/games/warhammer_fantasy.md)
246
257
  - [Faker::Games::Witcher](doc/games/witcher.md)
247
258
  - [Faker::Games::WorldOfWarcraft](doc/games/world_of_warcraft.md)
248
259
  - [Faker::Games::Zelda](doc/games/zelda.md)
@@ -250,15 +261,21 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
250
261
  ### Japanese Media
251
262
  - [Faker::JapaneseMedia::DragonBall](doc/japanese_media/dragon_ball.md)
252
263
  - [Faker::JapaneseMedia::OnePiece](doc/japanese_media/one_piece.md)
264
+ - [Faker::JapaneseMedia::StudioGhibli](doc/japanese_media/studio_ghibli.md)
253
265
  - [Faker::JapaneseMedia::SwordArtOnline](doc/japanese_media/sword_art_online.md)
266
+ - [Faker::JapaneseMedia::Naruto](doc/japanese_media/naruto.md)
267
+ - [Faker::JapaneseMedia::Doraemon](doc/japanese_media/doraemon.md)
268
+ - [Faker::JapaneseMedia::Conan](doc/japanese_media/conan.md)
254
269
 
255
270
  ### Movies
256
271
  - [Faker::Movie](doc/movies/movie.md)
257
272
  - [Faker::Movies::BackToTheFuture](doc/movies/back_to_the_future.md)
273
+ - [Faker::Movies::Departed](doc/movies/departed.md)
258
274
  - [Faker::Movies::Ghostbusters](doc/movies/ghostbusters.md)
259
275
  - [Faker::Movies::HarryPotter](doc/movies/harry_potter.md)
260
276
  - [Faker::Movies::HitchhikersGuideToTheGalaxy](doc/movies/hitchhikers_guide_to_the_galaxy.md)
261
277
  - [Faker::Movies::Hobbit](doc/movies/hobbit.md)
278
+ - [Faker::Movies::HowToTrainYourDragon](doc/movies/how_to_train_your_dragon.md)
262
279
  - [Faker::Movies::Lebowski](doc/movies/lebowski.md)
263
280
  - [Faker::Movies::LordOfTheRings](doc/movies/lord_of_the_rings.md)
264
281
  - [Faker::Movies::PrincessBride](doc/movies/princess_bride.md)
@@ -268,9 +285,13 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
268
285
  ### Music
269
286
  - [Faker::Music](doc/music/music.md)
270
287
  - [Faker::Music::GratefulDead](doc/music/grateful_dead.md)
288
+ - [Faker::Music::HipHop](doc/music/hiphop.md)
271
289
  - [Faker::Music::Opera](doc/music/opera.md)
290
+ - [Faker::Music::PearlJam](doc/music/pearl_jam.md)
272
291
  - [Faker::Music::Phish](doc/music/phish.md)
292
+ - [Faker::Music::Prince](doc/music/prince.md)
273
293
  - [Faker::Music::RockBand](doc/music/rock_band.md)
294
+ - [Faker::Music::Rush](doc/music/rush.md)
274
295
  - [Faker::Music::UmphreysMcgee](doc/music/umphreys_mcgee.md)
275
296
 
276
297
  ### Quotes
@@ -286,6 +307,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
286
307
 
287
308
  ### Tv Shows
288
309
  - [Faker::TvShows::AquaTeenHungerForce](doc/tv_shows/aqua_teen_hunger_force.md)
310
+ - [Faker::TvShows::BigBangTheory](doc/tv_shows/big_bang_theory.md)
289
311
  - [Faker::TvShows::BojackHorseman](doc/tv_shows/bojack_horseman.md)
290
312
  - [Faker::TvShows::BreakingBad](doc/tv_shows/breaking_bad.md)
291
313
  - [Faker::TvShows::Buffy](doc/tv_shows/buffy.md)
@@ -293,6 +315,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
293
315
  - [Faker::TvShows::DrWho](doc/tv_shows/dr_who.md)
294
316
  - [Faker::TvShows::DumbAndDumber](doc/tv_shows/dumb_and_dumber.md)
295
317
  - [Faker::TvShows::FamilyGuy](doc/tv_shows/family_guy.md)
318
+ - [Faker::TvShows::FinalSpace](doc/tv_shows/final_space.md)
296
319
  - [Faker::TvShows::Friends](doc/tv_shows/friends.md)
297
320
  - [Faker::TvShows::GameOfThrones](doc/tv_shows/game_of_thrones.md)
298
321
  - [Faker::TvShows::HeyArnold](doc/tv_shows/hey_arnold.md)
@@ -309,6 +332,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
309
332
  - [Faker::TvShows::StarTrek](doc/tv_shows/star_trek.md)
310
333
  - [Faker::TvShows::Stargate](doc/tv_shows/stargate.md)
311
334
  - [Faker::TvShows::StrangerThings](doc/tv_shows/stranger_things.md)
335
+ - [Faker::TvShows::Suits](doc/tv_shows/suits.md)
312
336
  - [Faker::TvShows::TheExpanse](doc/tv_shows/the_expanse.md)
313
337
  - [Faker::TvShows::TheFreshPrinceOfBelAir](doc/tv_shows/the_fresh_prince_of_bel_air.md)
314
338
  - [Faker::TvShows::TheITCrowd](doc/tv_shows/the_it_crowd.md)
@@ -14,7 +14,7 @@ module Faker
14
14
  # #=> "ak_zvU8YQLagjcfng7Tg8yCdiZ1rpiWNp1PBn3vtUs44utSvbJVR"
15
15
  #
16
16
  def address
17
- 'ak_' + rand_strings
17
+ "ak_#{rand_strings}"
18
18
  end
19
19
 
20
20
  ##
@@ -27,7 +27,7 @@ module Faker
27
27
  # #=> "th_147nDP22h3pHrLt2qykTH4txUwQh1ccaXp"
28
28
  #
29
29
  def transaction
30
- 'th_' + rand_strings(51)
30
+ "th_#{rand_strings(51)}"
31
31
  end
32
32
 
33
33
  ##
@@ -40,7 +40,7 @@ module Faker
40
40
  # #=> "ct_Hk2JsNeWGEYQEHHQCfcBeGrwbhtYSwFTPdDhW2SvjFYVojyhW"
41
41
  #
42
42
  def contract
43
- 'ct_' + rand_strings
43
+ "ct_#{rand_strings}"
44
44
  end
45
45
 
46
46
  ##
@@ -53,7 +53,7 @@ module Faker
53
53
  # #=> "ok_28QDg7fkF5qiKueSdUvUBtCYPJdmMEoS73CztzXCRAwMGKHKZh"
54
54
  #
55
55
  def oracle
56
- 'ok_' + rand_strings(51)
56
+ "ok_#{rand_strings(51)}"
57
57
  end
58
58
 
59
59
  protected
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
3
+ require 'openssl'
4
4
  require 'securerandom'
5
5
 
6
6
  module Faker
@@ -51,7 +51,7 @@ module Faker
51
51
  def address_for(network)
52
52
  version = PROTOCOL_VERSIONS.fetch(network)
53
53
  packed = version.chr + Faker::Config.random.bytes(20)
54
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
54
+ checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
55
55
  Faker::Base58.encode(packed + checksum)
56
56
  end
57
57
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
3
+ require 'openssl'
4
4
  require 'securerandom'
5
5
 
6
6
  module Faker
@@ -88,6 +88,34 @@ module Faker
88
88
  encode_tz(:edsig, 64)
89
89
  end
90
90
 
91
+ ##
92
+ # Produces a random Tezos public key
93
+ #
94
+ # @return [String]
95
+ #
96
+ # @example
97
+ # Faker::Blockchain::Tezos.public_key
98
+ # #=> "edpkuib9x8QXRc5nWwHUg7U1dXsVmaUrUNU5sX9pVEEvwbMVdfMCeq"
99
+ #
100
+ # @faker.version 2.15.2
101
+ def public_key
102
+ encode_tz(:edpk, 32)
103
+ end
104
+
105
+ ##
106
+ # Produces a random Tezos public key
107
+ #
108
+ # @return [String]
109
+ #
110
+ # @example
111
+ # Faker::Blockchain::Tezos.secret_key
112
+ # #=> "edsk3HZCAGEGpzQPnQUwQeFY4ESanFhQCgLpKriQw8GHyhKCrjHawv"
113
+ #
114
+ # @faker.version 2.15.2
115
+ def secret_key
116
+ encode_tz(:edsk, 32)
117
+ end
118
+
91
119
  protected
92
120
 
93
121
  ##
@@ -98,7 +126,7 @@ module Faker
98
126
  def encode_tz(prefix, payload_size)
99
127
  prefix = PREFIXES.fetch(prefix)
100
128
  packed = prefix.map(&:chr).join('') + Faker::Config.random.bytes(payload_size)
101
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
129
+ checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
102
130
  Faker::Base58.encode(packed + checksum)
103
131
  end
104
132
  end
@@ -30,6 +30,19 @@ module Faker
30
30
  fetch('dune.titles')
31
31
  end
32
32
 
33
+ ##
34
+ # Produces the name of a city from Dune
35
+ #
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Books::Dune.city #=> "Arrakeen"
40
+ #
41
+ # @faker.version next
42
+ def city
43
+ fetch('dune.cities')
44
+ end
45
+
33
46
  ##
34
47
  # Produces the name of a planet from Dune
35
48
  #
@@ -76,7 +89,7 @@ module Faker
76
89
  end
77
90
  end
78
91
 
79
- fetch('dune.quotes.' + character)
92
+ fetch("dune.quotes.#{character}")
80
93
  end
81
94
 
82
95
  ##
@@ -111,7 +124,7 @@ module Faker
111
124
  end
112
125
  end
113
126
 
114
- fetch('dune.sayings.' + source)
127
+ fetch("dune.sayings.#{source}")
115
128
  end
116
129
  end
117
130
  end
@@ -68,6 +68,7 @@ module Faker
68
68
  #
69
69
  # @param word_count [Integer] The number of words to have in the sentence
70
70
  # @param random_words_to_add [Integer]
71
+ # @param open_compounds_allowed [Boolean] If true, generated sentence can contain words having additional spaces
71
72
  #
72
73
  # @return [String]
73
74
  #
@@ -80,15 +81,18 @@ module Faker
80
81
  # @example
81
82
  # Faker::Books::Lovecraft.sentence(word_count: 3, random_words_to_add: 1)
82
83
  # #=> "Amorphous indescribable tenebrous."
84
+ # @example
85
+ # Faker::Books::Lovecraft.sentence(word_count: 3, random_words_to_add: 0, open_compounds_allowed: true)
86
+ # #=> "Effulgence unmentionable gambrel."
83
87
  #
84
88
  # @faker.version 1.9.3
85
- def sentence(legacy_word_count = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, random_words_to_add: 6)
89
+ def sentence(legacy_word_count = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, random_words_to_add: 6, open_compounds_allowed: true)
86
90
  warn_for_deprecated_arguments do |keywords|
87
91
  keywords << :word_count if legacy_word_count != NOT_GIVEN
88
92
  keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
89
93
  end
90
94
 
91
- words(number: word_count + rand(random_words_to_add.to_i).to_i, spaces_allowed: true).join(' ').capitalize + '.'
95
+ "#{words(number: word_count + rand(random_words_to_add.to_i).to_i, spaces_allowed: open_compounds_allowed).join(' ').capitalize}."
92
96
  end
93
97
 
94
98
  ##
@@ -266,9 +270,9 @@ module Faker
266
270
 
267
271
  paragraph = paragraph(sentence_count: 3)
268
272
 
269
- paragraph += ' ' + paragraph(sentence_count: 3) while paragraph.length < characters
273
+ paragraph += " #{paragraph(sentence_count: 3)}" while paragraph.length < characters
270
274
 
271
- paragraph[0...characters - 1] + '.'
275
+ "#{paragraph[0...characters - 1]}."
272
276
  end
273
277
  end
274
278
  end
@@ -54,7 +54,7 @@ module Faker
54
54
  keywords << :include_secondary if legacy_include_secondary != NOT_GIVEN
55
55
  end
56
56
 
57
- numerify(parse('address.street_address') + (include_secondary ? ' ' + secondary_address : ''))
57
+ numerify(parse('address.street_address') + (include_secondary ? " #{secondary_address}" : ''))
58
58
  end
59
59
 
60
60
  ##
@@ -102,7 +102,7 @@ module Faker
102
102
  # @return [String]
103
103
  #
104
104
  # @example
105
- # Faker::Address.mail_box #=> "PO Box 123"
105
+ # Faker::Address.mail_box #=> "PO Box 123"
106
106
  #
107
107
  # @faker.version 2.9.1
108
108
  def mail_box
@@ -133,7 +133,7 @@ module Faker
133
133
 
134
134
  # provide a zip code that is valid for the state provided
135
135
  # see http://www.fincen.gov/forms/files/us_state_territory_zip_codes.pdf
136
- bothify(fetch('address.postcode_by_state.' + state_abbreviation))
136
+ bothify(fetch("address.postcode_by_state.#{state_abbreviation}"))
137
137
  end
138
138
 
139
139
  ##
@@ -247,7 +247,7 @@ module Faker
247
247
  keywords << :code if legacy_code != NOT_GIVEN
248
248
  end
249
249
 
250
- fetch('address.country_by_code.' + code)
250
+ fetch("address.country_by_code.#{code}")
251
251
  end
252
252
 
253
253
  ##
@@ -265,7 +265,7 @@ module Faker
265
265
  keywords << :name if legacy_name != NOT_GIVEN
266
266
  end
267
267
 
268
- fetch('address.country_by_name.' + name)
268
+ fetch("address.country_by_name.#{name}")
269
269
  end
270
270
 
271
271
  ##
@@ -333,6 +333,36 @@ module Faker
333
333
  def full_address
334
334
  parse('address.full_address')
335
335
  end
336
+
337
+ ##
338
+ # Produces Address hash of required fields
339
+ #
340
+ # @return [Hash]
341
+ #
342
+ # @example
343
+ # Faker::Address.full_address_as_hash(:longitude,
344
+ # :latitude,
345
+ # :country_name_to_code,
346
+ # country_name_to_code: {name: 'united_states'})
347
+ # #=> {:longitude=>-101.74428917174603, :latitude=>-37.40056749089944, :country_name_to_code=>"US"}
348
+ #
349
+ # Faker::Address.full_address_as_hash(:full_address)
350
+ # #=> {:full_address=>"87635 Rice Street, Lake Brentonton, OR 61896-5968"}
351
+ #
352
+ # Faker::Address.full_address_as_hash(:city, :time_zone)
353
+ # #=> {:city=>"East Faustina", :time_zone=>"America/Mexico_City"}
354
+ #
355
+ # Faker::Address.full_address_as_hash(:street_address, street_address: {include_secondary: true})
356
+ # #=> {:street_address=>"29423 Kenneth Causeway Suite 563"}
357
+ #
358
+ # @faker.version 2.13.0
359
+ def full_address_as_hash(*attrs, **attrs_params)
360
+ attrs.map!(&:to_sym)
361
+ attrs_params.transform_keys!(&:to_sym)
362
+ attrs.map do |attr|
363
+ { "#{attr}": attrs_params[attr] ? send(attr, **attrs_params[attr]) : send(attr) }
364
+ end.reduce({}, :merge)
365
+ end
336
366
  end
337
367
  end
338
368
  end
@@ -63,7 +63,6 @@ module Faker
63
63
  #
64
64
  # @faker.version 1.4.3
65
65
  def semantic_version(legacy_major = NOT_GIVEN, legacy_minor = NOT_GIVEN, legacy_patch = NOT_GIVEN, major: 0..9, minor: 0..9, patch: 1..9)
66
- # rubocop:enable Metrics/ParameterLists
67
66
  warn_for_deprecated_arguments do |keywords|
68
67
  keywords << :major if legacy_major != NOT_GIVEN
69
68
  keywords << :minor if legacy_minor != NOT_GIVEN
@@ -72,6 +71,7 @@ module Faker
72
71
 
73
72
  [major, minor, patch].map { |chunk| sample(Array(chunk)) }.join('.')
74
73
  end
74
+ # rubocop:enable Metrics/ParameterLists
75
75
  end
76
76
  end
77
77
  end
@@ -39,7 +39,6 @@ module Faker
39
39
  #
40
40
  # @faker.version 1.4.3
41
41
  def image(legacy_slug = NOT_GIVEN, legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_set = NOT_GIVEN, legacy_bgset = NOT_GIVEN, slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
42
- # rubocop:enable Metrics/ParameterLists
43
42
  warn_for_deprecated_arguments do |keywords|
44
43
  keywords << :slug if legacy_slug != NOT_GIVEN
45
44
  keywords << :size if legacy_size != NOT_GIVEN
@@ -55,6 +54,7 @@ module Faker
55
54
  bgset_query = "&bgset=#{bgset}" if bgset
56
55
  "https://robohash.org/#{slug}.#{format}?size=#{size}&set=#{set}#{bgset_query}"
57
56
  end
57
+ # rubocop:enable Metrics/ParameterLists
58
58
  end
59
59
  end
60
60
  end
@@ -5,6 +5,17 @@ module Faker
5
5
  flexible :bank
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces a bank account number.
10
+ #
11
+ # @param digits [Integer] Number of digits that the generated account number should have.
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::Bank.account_number #=> 6738582379
16
+ # Faker::Bank.account_number(digits: 13) #=> 673858237902
17
+ #
18
+ # @faker.version 1.9.1
8
19
  def account_number(legacy_digits = NOT_GIVEN, digits: 10)
9
20
  warn_for_deprecated_arguments do |keywords|
10
21
  keywords << :digits if legacy_digits != NOT_GIVEN
@@ -17,6 +28,18 @@ module Faker
17
28
  output[0...digits]
18
29
  end
19
30
 
31
+ ##
32
+ # Produces a bank iban number.
33
+ #
34
+ # @param country_code [String, nil] Specifies what country prefix is used to generate the iban code. Providing `nil` will use a random country.
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Bank.iban #=> "GB76DZJM33188515981979"
39
+ # Faker::Bank.iban(country_code: "be") #=> "BE6375388567752043"
40
+ # Faker::Bank.iban(country_code: nil) #=> "DE45186738071857270067"
41
+ #
42
+ # @faker.version 1.7.0
20
43
  def iban(legacy_country_code = NOT_GIVEN, country_code: 'GB')
21
44
  # Each country has its own format for bank accounts
22
45
  # Many of them use letters in certain parts of the account
@@ -25,6 +48,8 @@ module Faker
25
48
  keywords << :country_code if legacy_country_code != NOT_GIVEN
26
49
  end
27
50
 
51
+ country_code ||= iban_country_code
52
+
28
53
  begin
29
54
  pattern = fetch("bank.iban_details.#{country_code.downcase}.bban_pattern")
30
55
  rescue I18n::MissingTranslationData
@@ -38,22 +63,85 @@ module Faker
38
63
  country_code.upcase + iban_checksum(country_code, account) + account
39
64
  end
40
65
 
66
+ ##
67
+ # Produces the ISO 3166 code of a country that uses the IBAN system.
68
+ #
69
+ # @return [String]
70
+ #
71
+ # @example
72
+ # Faker::Bank.iban_country_code #=> "CH"
73
+ #
74
+ # @faker.version next
75
+ def iban_country_code
76
+ sample(translate('faker.bank.iban_details').keys).to_s.upcase
77
+ end
78
+
79
+ ##
80
+ # Produces a bank name.
81
+ #
82
+ # @return [String]
83
+ #
84
+ # @example
85
+ # Faker::Bank.name #=> "ABN AMRO CORPORATE FINANCE LIMITED"
86
+ #
87
+ # @faker.version 1.7.0
41
88
  def name
42
89
  fetch('bank.name')
43
90
  end
44
91
 
92
+ ##
93
+ # Produces a routing number.
94
+ #
95
+ # @return [String]
96
+ #
97
+ # @example
98
+ # Faker::Bank.routing_number #=> "729343831"
99
+ #
100
+ # @faker.version 1.9.1
45
101
  def routing_number
46
102
  valid_routing_number
47
103
  end
48
104
 
105
+ ##
106
+ # Produces a valid routing number.
107
+ #
108
+ # @return [String]
109
+ #
110
+ # @example
111
+ # Faker::Bank.routing_number #=> "729343831"
112
+ #
113
+ # @faker.version 1.9.1
49
114
  def routing_number_with_format
50
115
  compile_fraction(valid_routing_number)
51
116
  end
52
117
 
118
+ ##
119
+ # Produces a swift / bic number.
120
+ #
121
+ # @return [String]
122
+ #
123
+ # @example
124
+ # Faker::Bank.swift_bic #=> "AAFMGB21"
125
+ #
126
+ # @faker.version 1.7.0
53
127
  def swift_bic
54
128
  fetch('bank.swift_bic')
55
129
  end
56
130
 
131
+ ##
132
+ # Produces an Australian BSB (Bank-State-Branch) number
133
+ #
134
+ # @return [String]
135
+ #
136
+ # @example
137
+ # Faker::Bank.bsb_number
138
+ # #=> "036616"
139
+ #
140
+ # @faker.version 2.13.0
141
+ def bsb_number
142
+ compile_bsb_number
143
+ end
144
+
57
145
  private
58
146
 
59
147
  def checksum(num_string)
@@ -68,8 +156,13 @@ module Faker
68
156
  def compile_routing_number
69
157
  digit_one_two = %w[00 01 02 03 04 05 06 07 08 09 10 11 12]
70
158
  ((21..32).to_a + (61..72).to_a + [80]).each { |x| digit_one_two << x.to_s }
71
- routing_num = digit_one_two.sample + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring
72
- routing_num
159
+ digit_one_two.sample + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring
160
+ end
161
+
162
+ def compile_bsb_number
163
+ digit_one_two = %w[01 03 06 08 11 12 73 76 78 30]
164
+ state = (2..7).to_a.map(&:to_s).sample
165
+ digit_one_two.sample + state + rand_numstring + rand_numstring + rand_numstring
73
166
  end
74
167
 
75
168
  # Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
@@ -103,7 +196,7 @@ module Faker
103
196
  prefix = (1..50).to_a.map(&:to_s).sample
104
197
  numerator = routing_num.split('')[5..8].join.to_i.to_s
105
198
  denominator = routing_num.split('')[0..4].join.to_i.to_s
106
- prefix + '-' + numerator + '/' + denominator
199
+ "#{prefix}-#{numerator}/#{denominator}"
107
200
  end
108
201
 
109
202
  def rand_numstring