faker 2.11.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +810 -19
  3. data/History.md +5 -5
  4. data/README.md +232 -105
  5. data/lib/faker/blockchain/aeternity.rb +5 -5
  6. data/lib/faker/blockchain/bitcoin.rb +2 -2
  7. data/lib/faker/blockchain/ethereum.rb +1 -1
  8. data/lib/faker/blockchain/tezos.rb +31 -3
  9. data/lib/faker/books/dune.rb +17 -12
  10. data/lib/faker/books/lovecraft.rb +14 -41
  11. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  12. data/lib/faker/creature/bird.rb +203 -0
  13. data/lib/faker/default/address.rb +40 -30
  14. data/lib/faker/default/adjective.rb +35 -0
  15. data/lib/faker/default/alphanumeric.rb +2 -8
  16. data/lib/faker/default/app.rb +1 -10
  17. data/lib/faker/default/avatar.rb +1 -12
  18. data/lib/faker/default/bank.rb +104 -19
  19. data/lib/faker/default/barcode.rb +165 -0
  20. data/lib/faker/default/beer.rb +3 -3
  21. data/lib/faker/default/blood.rb +48 -0
  22. data/lib/faker/default/boolean.rb +1 -4
  23. data/lib/faker/default/business.rb +1 -1
  24. data/lib/faker/default/camera.rb +46 -0
  25. data/lib/faker/default/cannabis.rb +10 -0
  26. data/lib/faker/default/chile_rut.rb +54 -16
  27. data/lib/faker/default/chuck_norris.rb +1 -0
  28. data/lib/faker/default/code.rb +106 -38
  29. data/lib/faker/default/color.rb +77 -6
  30. data/lib/faker/default/commerce.rb +105 -28
  31. data/lib/faker/default/company.rb +116 -28
  32. data/lib/faker/default/compass.rb +135 -0
  33. data/lib/faker/default/computer.rb +63 -0
  34. data/lib/faker/default/construction.rb +54 -0
  35. data/lib/faker/default/cosmere.rb +90 -0
  36. data/lib/faker/default/crypto.rb +17 -4
  37. data/lib/faker/default/crypto_coin.rb +48 -15
  38. data/lib/faker/default/date.rb +21 -50
  39. data/lib/faker/default/demographic.rb +1 -5
  40. data/lib/faker/default/driving_licence.rb +66 -10
  41. data/lib/faker/default/drone.rb +332 -0
  42. data/lib/faker/default/educator.rb +13 -0
  43. data/lib/faker/default/emotion.rb +33 -0
  44. data/lib/faker/default/file.rb +53 -21
  45. data/lib/faker/default/finance.rb +75 -7
  46. data/lib/faker/default/food.rb +28 -2
  47. data/lib/faker/default/gender.rb +1 -1
  48. data/lib/faker/default/hipster.rb +106 -48
  49. data/lib/faker/default/hobby.rb +22 -0
  50. data/lib/faker/default/id_number.rb +230 -13
  51. data/lib/faker/default/internet.rb +390 -108
  52. data/lib/faker/default/internet_http.rb +48 -0
  53. data/lib/faker/default/invoice.rb +37 -23
  54. data/lib/faker/default/json.rb +61 -23
  55. data/lib/faker/default/lorem.rb +171 -72
  56. data/lib/faker/default/lorem_flickr.rb +69 -37
  57. data/lib/faker/default/markdown.rb +97 -11
  58. data/lib/faker/default/marketing.rb +1 -1
  59. data/lib/faker/default/measurement.rb +101 -42
  60. data/lib/faker/default/military.rb +26 -0
  61. data/lib/faker/default/mountain.rb +33 -0
  62. data/lib/faker/default/name.rb +99 -5
  63. data/lib/faker/default/nation.rb +0 -3
  64. data/lib/faker/default/nhs.rb +21 -6
  65. data/lib/faker/default/number.rb +38 -68
  66. data/lib/faker/default/omniauth.rb +111 -53
  67. data/lib/faker/default/phone_number.rb +89 -10
  68. data/lib/faker/default/placeholdit.rb +23 -12
  69. data/lib/faker/default/relationship.rb +2 -6
  70. data/lib/faker/default/religion.rb +6 -0
  71. data/lib/faker/default/science.rb +108 -0
  72. data/lib/faker/default/slack_emoji.rb +81 -0
  73. data/lib/faker/default/source.rb +3 -16
  74. data/lib/faker/default/south_africa.rb +90 -0
  75. data/lib/faker/default/space.rb +1 -1
  76. data/lib/faker/default/string.rb +18 -8
  77. data/lib/faker/default/stripe.rb +68 -23
  78. data/lib/faker/default/tea.rb +41 -0
  79. data/lib/faker/default/time.rb +4 -34
  80. data/lib/faker/default/twitter.rb +42 -23
  81. data/lib/faker/default/types.rb +88 -29
  82. data/lib/faker/default/university.rb +45 -0
  83. data/lib/faker/default/vehicle.rb +212 -54
  84. data/lib/faker/default/verb.rb +45 -0
  85. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  86. data/lib/faker/default/world_cup.rb +6 -15
  87. data/lib/faker/fantasy/tolkien.rb +67 -0
  88. data/lib/faker/games/clash_of_clans.rb +48 -0
  89. data/lib/faker/games/control.rb +113 -0
  90. data/lib/faker/games/dnd.rb +178 -0
  91. data/lib/faker/games/dota.rb +14 -5
  92. data/lib/faker/games/elder_scrolls.rb +26 -0
  93. data/lib/faker/games/heroes.rb +13 -0
  94. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  95. data/lib/faker/games/minecraft.rb +113 -0
  96. data/lib/faker/games/myst.rb +1 -1
  97. data/lib/faker/games/street_fighter.rb +61 -0
  98. data/lib/faker/games/super_mario.rb +48 -0
  99. data/lib/faker/games/tarkov.rb +205 -0
  100. data/lib/faker/games/touhou.rb +75 -0
  101. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  102. data/lib/faker/games/witcher.rb +39 -0
  103. data/lib/faker/games/world_of_warcraft.rb +26 -1
  104. data/lib/faker/japanese_media/conan.rb +48 -0
  105. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  106. data/lib/faker/japanese_media/doraemon.rb +48 -0
  107. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  108. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  109. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  110. data/lib/faker/japanese_media/naruto.rb +61 -0
  111. data/lib/faker/japanese_media/one_piece.rb +1 -1
  112. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  113. data/lib/faker/locations/australia.rb +47 -0
  114. data/lib/faker/movies/avatar.rb +49 -0
  115. data/lib/faker/movies/departed.rb +49 -0
  116. data/lib/faker/movies/hackers.rb +48 -0
  117. data/lib/faker/movies/hobbit.rb +4 -4
  118. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  119. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  120. data/lib/faker/movies/movie.rb +13 -0
  121. data/lib/faker/movies/room.rb +63 -0
  122. data/lib/faker/movies/star_wars.rb +75 -7
  123. data/lib/faker/movies/tron.rb +161 -0
  124. data/lib/faker/music/hiphop.rb +48 -0
  125. data/lib/faker/music/music.rb +12 -0
  126. data/lib/faker/music/opera.rb +237 -1
  127. data/lib/faker/music/pearl_jam.rb +50 -0
  128. data/lib/faker/music/phish.rb +27 -1
  129. data/lib/faker/music/prince.rb +64 -0
  130. data/lib/faker/music/rock_band.rb +12 -0
  131. data/lib/faker/music/rush.rb +37 -0
  132. data/lib/faker/music/show.rb +49 -0
  133. data/lib/faker/quotes/quote.rb +93 -1
  134. data/lib/faker/quotes/rajnikanth.rb +1 -0
  135. data/lib/faker/quotes/shakespeare.rb +70 -0
  136. data/lib/faker/religion/bible.rb +50 -0
  137. data/lib/faker/sports/chess.rb +90 -0
  138. data/lib/faker/sports/mountaineering.rb +22 -0
  139. data/lib/faker/sports/sport.rb +116 -0
  140. data/lib/faker/sports/volleyball.rb +74 -0
  141. data/lib/faker/travel/airport.rb +43 -0
  142. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  143. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  144. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  145. data/lib/faker/tv_shows/buffy.rb +17 -4
  146. data/lib/faker/tv_shows/dr_who.rb +1 -1
  147. data/lib/faker/tv_shows/final_space.rb +51 -0
  148. data/lib/faker/tv_shows/futurama.rb +65 -0
  149. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  150. data/lib/faker/tv_shows/simpsons.rb +14 -0
  151. data/lib/faker/tv_shows/spongebob.rb +50 -0
  152. data/lib/faker/tv_shows/suits.rb +37 -0
  153. data/lib/faker/tv_shows/supernatural.rb +48 -0
  154. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  155. data/lib/faker/tv_shows/the_office.rb +37 -0
  156. data/lib/faker/version.rb +2 -2
  157. data/lib/faker.rb +40 -84
  158. data/lib/helpers/base58.rb +1 -1
  159. data/lib/helpers/char.rb +22 -27
  160. data/lib/helpers/unique_generator.rb +13 -13
  161. data/lib/locales/ar.yml +6 -1
  162. data/lib/locales/bg.yml +1 -1
  163. data/lib/locales/da-DK.yml +1 -1
  164. data/lib/locales/de-AT.yml +7 -6
  165. data/lib/locales/de-CH.yml +1697 -2
  166. data/lib/locales/de.yml +12 -6
  167. data/lib/locales/en/address.yml +4 -3
  168. data/lib/locales/en/adjective.yml +179 -0
  169. data/lib/locales/en/airport.yml +381 -0
  170. data/lib/locales/en/animal.yml +1 -1
  171. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  172. data/lib/locales/en/australia.yml +107 -0
  173. data/lib/locales/en/avatar.yml +31 -0
  174. data/lib/locales/en/bank.yml +1 -1
  175. data/lib/locales/en/barcode.yml +24 -0
  176. data/lib/locales/en/bible.yml +90 -0
  177. data/lib/locales/en/big_bang_theory.yml +38 -0
  178. data/lib/locales/en/bird.yml +1281 -0
  179. data/lib/locales/en/blood.yml +13 -0
  180. data/lib/locales/en/book.yml +487 -3
  181. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  182. data/lib/locales/en/buffy.yml +1 -1
  183. data/lib/locales/en/camera.yml +611 -0
  184. data/lib/locales/en/cat.yml +1 -1
  185. data/lib/locales/en/chess.yml +103 -0
  186. data/lib/locales/en/clash_of_clan.yml +101 -0
  187. data/lib/locales/en/coffee.yml +1 -1
  188. data/lib/locales/en/commerce.yml +17 -0
  189. data/lib/locales/en/community.yml +17 -17
  190. data/lib/locales/en/company.yml +3 -2
  191. data/lib/locales/en/computer.yml +55 -0
  192. data/lib/locales/en/conan.yml +171 -0
  193. data/lib/locales/en/control.yml +247 -0
  194. data/lib/locales/en/cowboy_bebop.yml +163 -0
  195. data/lib/locales/en/demographic.yml +218 -5
  196. data/lib/locales/en/departed.yml +50 -0
  197. data/lib/locales/en/device.yml +112 -4
  198. data/lib/locales/en/dnd.yml +636 -0
  199. data/lib/locales/en/doraemon.yml +286 -0
  200. data/lib/locales/en/dota.yml +651 -63
  201. data/lib/locales/en/dragon_ball.yml +243 -1
  202. data/lib/locales/en/driving_license.yml +181 -0
  203. data/lib/locales/en/drone.yml +95 -0
  204. data/lib/locales/en/dune.yml +270 -131
  205. data/lib/locales/en/educator.yml +6 -0
  206. data/lib/locales/en/elder_scrolls.yml +583 -9
  207. data/lib/locales/en/emotion.yml +480 -0
  208. data/lib/locales/en/fallout.yml +311 -133
  209. data/lib/locales/en/file.yml +9 -1
  210. data/lib/locales/en/final_space.yml +37 -0
  211. data/lib/locales/en/finance.yml +77 -1
  212. data/lib/locales/en/fma_brotherhood.yml +78 -0
  213. data/lib/locales/en/food.yml +1066 -10
  214. data/lib/locales/en/football.yml +3 -3
  215. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  216. data/lib/locales/en/futurama.yml +344 -0
  217. data/lib/locales/en/game.yml +11 -0
  218. data/lib/locales/en/hackers.yml +53 -0
  219. data/lib/locales/en/half_life.yml +84 -3
  220. data/lib/locales/en/heroes.yml +408 -3
  221. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  222. data/lib/locales/en/hobby.yml +171 -0
  223. data/lib/locales/en/horse.yml +2 -2
  224. data/lib/locales/en/house.yml +1 -1
  225. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  226. data/lib/locales/en/internet.yml +140 -3
  227. data/lib/locales/en/jack_handey.yml +54 -0
  228. data/lib/locales/en/kamen_rider.yml +452 -0
  229. data/lib/locales/en/kpop.yml +7 -7
  230. data/lib/locales/en/league_of_legends.yml +285 -6
  231. data/lib/locales/en/lebowski.yml +1 -1
  232. data/lib/locales/en/lovecraft.yml +76 -6
  233. data/lib/locales/en/military.yml +179 -5
  234. data/lib/locales/en/minecraft.yml +663 -0
  235. data/lib/locales/en/mitch_hedberg.yml +46 -0
  236. data/lib/locales/en/mountain.yml +171 -0
  237. data/lib/locales/en/mountaineering.yml +14 -0
  238. data/lib/locales/en/movie.yml +194 -2
  239. data/lib/locales/en/music.yml +461 -29
  240. data/lib/locales/en/myst.yml +87 -31
  241. data/lib/locales/en/name.yml +5 -4
  242. data/lib/locales/en/naruto.yml +230 -0
  243. data/lib/locales/en/one_piece.yml +2 -2
  244. data/lib/locales/en/opera.yml +169 -1
  245. data/lib/locales/en/overwatch.yml +2648 -2622
  246. data/lib/locales/en/pearl_jam.yml +213 -0
  247. data/lib/locales/en/phish.yml +392 -1
  248. data/lib/locales/en/pokemon.yml +417 -4
  249. data/lib/locales/en/prince.yml +227 -0
  250. data/lib/locales/en/quote.yml +692 -163
  251. data/lib/locales/en/rock_band.yml +1 -0
  252. data/lib/locales/en/room.yml +68 -0
  253. data/lib/locales/en/rush.yml +32 -0
  254. data/lib/locales/en/science.yml +481 -3
  255. data/lib/locales/en/shakespeare.yml +21 -24
  256. data/lib/locales/en/show.yml +597 -0
  257. data/lib/locales/en/simpsons.yml +668 -0
  258. data/lib/locales/en/source.yml +35 -0
  259. data/lib/locales/en/space.yml +1 -1
  260. data/lib/locales/en/spongebob.yml +489 -0
  261. data/lib/locales/en/sport.yml +130 -0
  262. data/lib/locales/en/star_trek.yml +1 -1
  263. data/lib/locales/en/star_wars.yml +568 -220
  264. data/lib/locales/en/stranger_thing.yml +1 -1
  265. data/lib/locales/en/street_fighter.yml +1524 -0
  266. data/lib/locales/en/studio_ghibli.yml +107 -0
  267. data/lib/locales/en/suits.yml +45 -0
  268. data/lib/locales/en/super_mario.yml +58 -0
  269. data/lib/locales/en/super_smash_bros.yml +23 -6
  270. data/lib/locales/en/supernatural.yml +141 -0
  271. data/lib/locales/en/tarkov.yml +593 -0
  272. data/lib/locales/en/tea.yml +172 -0
  273. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  274. data/lib/locales/en/the_office.yml +86 -0
  275. data/lib/locales/en/tolkien.yml +2453 -0
  276. data/lib/locales/en/touhou.yml +839 -0
  277. data/lib/locales/en/tron.yml +227 -0
  278. data/lib/locales/en/vehicle.yml +2809 -75
  279. data/lib/locales/en/volleyball.yml +501 -0
  280. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  281. data/lib/locales/en/witcher.yml +426 -7
  282. data/lib/locales/en/world_of_warcraft.yml +122 -4
  283. data/lib/locales/en/zelda.yml +962 -4
  284. data/lib/locales/en-AU.yml +50 -10
  285. data/lib/locales/en-CA.yml +4 -1
  286. data/lib/locales/en-GB.yml +3 -2
  287. data/lib/locales/en-IND.yml +2 -1
  288. data/lib/locales/en-MS.yml +3 -1
  289. data/lib/locales/en-NEP.yml +4 -1
  290. data/lib/locales/en-NG.yml +1 -0
  291. data/lib/locales/en-NZ.yml +4 -1
  292. data/lib/locales/en-PAK.yml +3 -1
  293. data/lib/locales/en-SG.yml +3 -1
  294. data/lib/locales/en-UG.yml +1 -0
  295. data/lib/locales/en-US.yml +38 -12
  296. data/lib/locales/en-ZA.yml +1 -1
  297. data/lib/locales/en-au-ocker.yml +4 -1
  298. data/lib/locales/en.yml +0 -3
  299. data/lib/locales/es-AR.yml +4601 -0
  300. data/lib/locales/es-MX.yml +1 -1
  301. data/lib/locales/es.yml +58 -2
  302. data/lib/locales/fi-FI.yml +4 -2
  303. data/lib/locales/fr/address.yml +20 -0
  304. data/lib/locales/fr/adjective.yml +266 -0
  305. data/lib/locales/fr/ancient.yml +141 -0
  306. data/lib/locales/fr/animal.yml +5 -0
  307. data/lib/locales/fr/appliance.yml +4 -0
  308. data/lib/locales/fr/book.yml +7 -0
  309. data/lib/locales/fr/color.yml +4 -0
  310. data/lib/locales/fr/company.yml +17 -0
  311. data/lib/locales/fr/compass.yml +23 -0
  312. data/lib/locales/fr/demographic.yml +4 -0
  313. data/lib/locales/fr/gender.yml +6 -0
  314. data/lib/locales/fr/internet.yml +5 -0
  315. data/lib/locales/fr/lorem.yml +5 -0
  316. data/lib/locales/fr/measurement.yml +7 -0
  317. data/lib/locales/fr/name.yml +21 -0
  318. data/lib/locales/fr/phone_number.yml +7 -0
  319. data/lib/locales/fr/pokemon.yml +7 -0
  320. data/lib/locales/fr-CA.yml +22 -6
  321. data/lib/locales/fr-CH.yml +3 -3
  322. data/lib/locales/fr.yml +1 -113
  323. data/lib/locales/hy.yml +2 -1
  324. data/lib/locales/id.yml +3 -1
  325. data/lib/locales/it.yml +3 -1
  326. data/lib/locales/ja/README.md +13 -0
  327. data/lib/locales/ja/address.yml +120539 -0
  328. data/lib/locales/ja/adjective.yml +148 -0
  329. data/lib/locales/ja/ancient.yml +4 -0
  330. data/lib/locales/ja/animal.yml +5 -0
  331. data/lib/locales/ja/bank.yml +4 -0
  332. data/lib/locales/ja/book.yml +7 -0
  333. data/lib/locales/ja/cat.yml +5 -0
  334. data/lib/locales/ja/coffee.yml +4 -0
  335. data/lib/locales/ja/color.yml +4 -0
  336. data/lib/locales/ja/commerce.yml +11 -0
  337. data/lib/locales/ja/company.yml +8 -0
  338. data/lib/locales/ja/dog.yml +6 -0
  339. data/lib/locales/ja/emotion.yml +51 -0
  340. data/lib/locales/ja/food.yml +4 -0
  341. data/lib/locales/ja/gender.yml +4 -0
  342. data/lib/locales/ja/lorem.yml +9 -0
  343. data/lib/locales/ja/name.yml +13 -0
  344. data/lib/locales/ja/naruto.yml +230 -0
  345. data/lib/locales/ja/overwatch.yml +5 -0
  346. data/lib/locales/ja/phone_number.yml +7 -0
  347. data/lib/locales/ja/pokemon.yml +7 -0
  348. data/lib/locales/ja/relationship.yml +10 -0
  349. data/lib/locales/ja/restaurant.yml +11 -0
  350. data/lib/locales/ja/space.yml +5 -0
  351. data/lib/locales/ja/studio_ghibli.yml +112 -0
  352. data/lib/locales/ja/subscription.yml +8 -0
  353. data/lib/locales/ja/super_mario.yml +9 -0
  354. data/lib/locales/ja/super_smash_bros.yml +8 -0
  355. data/lib/locales/ja/university.yml +9 -0
  356. data/lib/locales/ja/zelda.yml +5 -0
  357. data/lib/locales/ko.yml +95 -2
  358. data/lib/locales/lt.yml +34 -0
  359. data/lib/locales/lv.yml +1 -1
  360. data/lib/locales/mi-NZ.yml +283 -0
  361. data/lib/locales/nb-NO.yml +5 -2
  362. data/lib/locales/nl.yml +1 -0
  363. data/lib/locales/pl.yml +2 -2
  364. data/lib/locales/pt-BR.yml +10 -2
  365. data/lib/locales/pt.yml +4 -2
  366. data/lib/locales/ru.yml +43 -1
  367. data/lib/locales/sk.yml +5 -2
  368. data/lib/locales/sv.yml +1 -0
  369. data/lib/locales/th.yml +76 -76
  370. data/lib/locales/tr.yml +1 -0
  371. data/lib/locales/uk.yml +3 -0
  372. data/lib/locales/vi.yml +1 -0
  373. data/lib/locales/zh-CN.yml +1 -0
  374. data/lib/locales/zh-TW.yml +1 -0
  375. metadata +219 -29
  376. data/lib/faker/default/fillmurray.rb +0 -45
  377. data/lib/faker/default/lorem_pixel.rb +0 -47
  378. data/lib/locales/en/hobbit.yml +0 -19
  379. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  380. data/lib/locales/ja.yml +0 -101
@@ -0,0 +1,332 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Drone < Base
5
+ class << self
6
+ ##
7
+ # Returns random drone name with company
8
+ #
9
+ # @return [string]
10
+ #
11
+ # @example
12
+ # Faker::Drone.name #=> "DJI Mavic Air 2"
13
+ #
14
+ # @faker.version 2.14.0
15
+ def name
16
+ fetch('drone.name')
17
+ end
18
+
19
+ ##
20
+ # Returns total drone weight in grams
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Drone.weight #=> "570 g"
26
+ #
27
+ # @faker.version 2.14.0
28
+ def weight
29
+ parse('drone.weight')
30
+ end
31
+
32
+ ##
33
+ # Returns maximum ascent speed for drone in m/s
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Drone.max_ascent_speed #=> "4 m/s"
39
+ #
40
+ # @faker.version 2.14.0
41
+ def max_ascent_speed
42
+ parse('drone.max_ascent_speed')
43
+ end
44
+
45
+ ##
46
+ # Returns maximum descent speed for drone in m/s
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Drone.max_descent_speed #=> "4 m/s"
52
+ #
53
+ # @faker.version 2.14.0
54
+ def max_descent_speed
55
+ parse('drone.max_descent_speed')
56
+ end
57
+
58
+ ##
59
+ # Returns max flight time for drone in optimal conditions
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Drone.flight_time #=> "34 min"
65
+ #
66
+ # @faker.version 2.14.0
67
+ def flight_time
68
+ parse('drone.flight_time')
69
+ end
70
+
71
+ ##
72
+ # Returns max altitude drone can go above sea level in meters
73
+ #
74
+ # @return [String]
75
+ #
76
+ # @example
77
+ # Faker::Drone.max_altitude #=> "5000 m"
78
+ #
79
+ # @faker.version 2.14.0
80
+ def max_altitude
81
+ parse('drone.max_altitude')
82
+ end
83
+
84
+ ##
85
+ # Returns how far drone can go in optimal condition when full charged in meters
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @example
90
+ # Faker::Drone.max_flight_distance #=> "18500 m"
91
+ #
92
+ # @faker.version 2.14.0
93
+ def max_flight_distance
94
+ parse('drone.max_flight_distance')
95
+ end
96
+
97
+ ##
98
+ # Returns max horizontal speed by drone in m/s
99
+ #
100
+ # @return [String]
101
+ #
102
+ # @example
103
+ # Faker::Drone.max_speed #=> "19 m/s"
104
+ #
105
+ # @faker.version 2.14.0
106
+ def max_speed
107
+ parse('drone.max_speed')
108
+ end
109
+
110
+ ##
111
+ # Returns max wind resistance by drone in m/s
112
+ #
113
+ # @return [String]
114
+ #
115
+ # @example
116
+ # Faker::Drone.max_wind_resistance #=> "10.5 m/s"
117
+ #
118
+ # @faker.version 2.14.0
119
+ def max_wind_resistance
120
+ parse('drone.max_wind_resistance')
121
+ end
122
+
123
+ ##
124
+ # Returns max angular velocity of drone in degrees/s
125
+ #
126
+ # @return [String]
127
+ #
128
+ # @example
129
+ # Faker::Drone.max_angular_velocity #=> "250 degree/s"
130
+ #
131
+ # @faker.version 2.14.0
132
+ def max_angular_velocity
133
+ parse('drone.max_angular_velocity')
134
+ end
135
+
136
+ ##
137
+ # Returns max tilt angle drone can go in degrees
138
+ #
139
+ # @return [String]
140
+ #
141
+ # @example
142
+ # Faker::Drone.max_tilt_angle #=> "35 degrees"
143
+ #
144
+ # @faker.version 2.14.0
145
+ def max_tilt_angle
146
+ parse('drone.max_tilt_angle')
147
+ end
148
+
149
+ ##
150
+ # Returns operating temperature for drone in Fahrenheit
151
+ #
152
+ # @return [String]
153
+ #
154
+ # @example
155
+ # Faker::Drone.operating_temperature #=> "14-104F"
156
+ #
157
+ # @faker.version 2.14.0
158
+ def operating_temperature
159
+ parse('drone.operating_temperature')
160
+ end
161
+
162
+ ##
163
+ # Returns the drone battery capacity
164
+ #
165
+ # @return [String]
166
+ #
167
+ # @example
168
+ # Faker::Drone.battery_capacity #=> "3500 mAh"
169
+ #
170
+ # @faker.version 2.14.0
171
+ def battery_capacity
172
+ parse('drone.battery_capacity')
173
+ end
174
+
175
+ ##
176
+ # Returns battery voltage
177
+ #
178
+ # @return [String]
179
+ #
180
+ # @example
181
+ # Faker::Drone.battery_voltage #=> "13.2V"
182
+ #
183
+ # @faker.version 2.14.0
184
+ def battery_voltage
185
+ parse('drone.battery_voltage')
186
+ end
187
+
188
+ ##
189
+ # Returns the battery type
190
+ #
191
+ # @return [String]
192
+ #
193
+ # @example
194
+ # Faker::Drone.battery_type #=> "LiPo 4S"
195
+ #
196
+ # @faker.version 2.14.0
197
+ def battery_type
198
+ parse('drone.battery_type')
199
+ end
200
+
201
+ ##
202
+ # Returns total battery weight in grams
203
+ #
204
+ # @return [String]
205
+ #
206
+ # @example
207
+ # Faker::Drone.battery_weight #=> "198 g"
208
+ #
209
+ # @faker.version 2.14.0
210
+ def battery_weight
211
+ parse('drone.battery_weight')
212
+ end
213
+
214
+ ##
215
+ # Returns charging temperature for battery in Fahrenheit
216
+ #
217
+ # @return [String]
218
+ #
219
+ # @example
220
+ # Faker::Drone.charging_temperature #=> "41-104F"
221
+ #
222
+ # @faker.version 2.14.0
223
+ def charging_temperature
224
+ parse('drone.charging_temperature')
225
+ end
226
+
227
+ ##
228
+ # Returns max chargin power required for battery
229
+ #
230
+ # @return [String]
231
+ #
232
+ # @example
233
+ # Faker::Drone.max_charging_power #=> "38W"
234
+ #
235
+ # @faker.version 2.14.0
236
+ def max_charging_power
237
+ parse('drone.max_charging_power')
238
+ end
239
+
240
+ ##
241
+ # Returns camera ISO range for drone
242
+ #
243
+ # @return [String]
244
+ #
245
+ # @example
246
+ # Faker::Drone.iso #=> "100-3200"
247
+ #
248
+ # @faker.version 2.14.0
249
+ def iso
250
+ parse('drone.iso')
251
+ end
252
+
253
+ ##
254
+ # Returns max camera resolution in MP"
255
+ #
256
+ # @return [String]
257
+ #
258
+ # @example
259
+ # Faker::Drone.max_resolution #=> "48MP"
260
+ #
261
+ # @faker.version 2.14.0
262
+ def max_resolution
263
+ parse('drone.max_resolution')
264
+ end
265
+
266
+ ##
267
+ # Returns photo format for drone
268
+ #
269
+ # @return [String]
270
+ #
271
+ # @example
272
+ # Faker::Drone.photo_format #=> "JPEG"
273
+ #
274
+ # @faker.version 2.14.0
275
+ def photo_format
276
+ parse('drone.photo_format')
277
+ end
278
+
279
+ ##
280
+ # Returns video format
281
+ #
282
+ # @return [String]
283
+ #
284
+ # @example
285
+ # Faker::Drone.video_format #=> "MP4"
286
+ #
287
+ # @faker.version 2.14.0
288
+ def video_format
289
+ parse('drone.video_format')
290
+ end
291
+
292
+ ##
293
+ # Returns max and min shutter speed for camera
294
+ #
295
+ # @return [String]
296
+ #
297
+ # @example
298
+ # Faker::Drone.shutter_speed_range #=> "8-1/8000s"
299
+ #
300
+ # @faker.version 2.14.0
301
+ def shutter_speed_range
302
+ "#{fetch('drone.max_shutter_speed')}-#{fetch('drone.min_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
303
+ end
304
+
305
+ ##
306
+ # Returns max shutter speed for camera
307
+ #
308
+ # @return [String]
309
+ #
310
+ # @example
311
+ # Faker::Drone.max_shutter_speed #=> "60s"
312
+ #
313
+ # @faker.version 2.14.0
314
+ def max_shutter_speed
315
+ "#{fetch('drone.max_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
316
+ end
317
+
318
+ ##
319
+ # Returns min shutter speed for camera
320
+ #
321
+ # @return [String]
322
+ #
323
+ # @example
324
+ # Faker::Drone.min_shutter_speed #=> "1/8000s"
325
+ #
326
+ # @faker.version 2.14.0
327
+ def min_shutter_speed
328
+ "#{fetch('drone.min_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
329
+ end
330
+ end
331
+ end
332
+ end
@@ -72,6 +72,19 @@ module Faker
72
72
  parse('educator.secondary_school')
73
73
  end
74
74
 
75
+ ##
76
+ # Produces a primary school.
77
+ #
78
+ # @return [String]
79
+ #
80
+ # @example
81
+ # Faker::Educator.primary_school #=> "Brighthurst Elementary School"
82
+ #
83
+ # @faker.version next
84
+ def primary_school
85
+ parse('educator.primary_school')
86
+ end
87
+
75
88
  ##
76
89
  # Produces a campus name.
77
90
  #
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Emotion < Base
5
+ class << self
6
+ ##
7
+ # Produces an emotion noun.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Emotion.noun #=> "amazement"
13
+ #
14
+ # @faker.version next
15
+ def noun
16
+ fetch('emotion.noun')
17
+ end
18
+
19
+ ##
20
+ # Produces an emotion adjective.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Emotion.adjective # => "nonplussed"
26
+ #
27
+ # @faker.version next
28
+ def adjective
29
+ fetch('emotion.adjective')
30
+ end
31
+ end
32
+ end
33
+ end
@@ -3,15 +3,22 @@
3
3
  module Faker
4
4
  class File < Base
5
5
  class << self
6
- # rubocop:disable Metrics/ParameterLists
7
- def dir(legacy_segment_count = NOT_GIVEN, legacy_root = NOT_GIVEN, legacy_directory_separator = NOT_GIVEN, segment_count: 3, root: nil, directory_separator: ::File::Separator)
8
- # rubocop:enable Metrics/ParameterLists
9
- warn_for_deprecated_arguments do |keywords|
10
- keywords << :segment_count if legacy_segment_count != NOT_GIVEN
11
- keywords << :root if legacy_root != NOT_GIVEN
12
- keywords << :directory_separator if legacy_directory_separator != NOT_GIVEN
13
- end
14
-
6
+ ##
7
+ # Produces a random directory name.
8
+ #
9
+ # @param segment_count [Integer] Specifies the number of nested folders in the generated string.
10
+ # @param root [String] Specifies the root of the generated string.
11
+ # @param directory_separator [String] Specifies the separator between the segments.
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::File.dir #=> "et_error/sint_voluptas/quas_veritatis"
16
+ # Faker::File.dir(segment_count: 2) #=> "ea-suscipit/ut-deleniti"
17
+ # Faker::File.dir(segment_count: 3, root: nil, directory_separator: '/') #=> "est_porro/fugit_eveniet/incidunt-autem"
18
+ # Faker::File.dir(segment_count: 3, root: nil, directory_separator: '\\') #=> "aut-ullam\\quia_quisquam\\ut-eos"
19
+ #
20
+ # @faker.version 1.6.4
21
+ def dir(segment_count: 3, root: nil, directory_separator: ::File::Separator)
15
22
  Array
16
23
  .new(segment_count) { Faker::Internet.slug }
17
24
  .unshift(root)
@@ -20,24 +27,49 @@ module Faker
20
27
  .squeeze(directory_separator)
21
28
  end
22
29
 
30
+ ##
31
+ # Produces a random file extension.
32
+ #
33
+ # @return [String]
34
+ #
35
+ # @example
36
+ # Faker::File.extension #=> "mp3"
37
+ #
38
+ # @faker.version 1.6.4
23
39
  def extension
24
40
  fetch('file.extension')
25
41
  end
26
42
 
27
- def mime_type
28
- fetch('file.mime_type')
43
+ ##
44
+ # Produces a random mime type.
45
+ #
46
+ # @return [String]
47
+ #
48
+ # @example
49
+ # Faker::File.mime_type #=> "application/pdf"
50
+ #
51
+ # @faker.version next
52
+ def mime_type(media_type: nil)
53
+ media_type ? fetch("file.mime_type.#{media_type}") : sample(sample(translate('faker.file.mime_type').values))
29
54
  end
30
55
 
31
- # rubocop:disable Metrics/ParameterLists
32
- def file_name(legacy_dir = NOT_GIVEN, legacy_name = NOT_GIVEN, legacy_ext = NOT_GIVEN, legacy_directory_separator = NOT_GIVEN, dir: nil, name: nil, ext: nil, directory_separator: ::File::Separator)
33
- # rubocop:enable Metrics/ParameterLists
34
- warn_for_deprecated_arguments do |keywords|
35
- keywords << :dir if legacy_dir != NOT_GIVEN
36
- keywords << :name if legacy_name != NOT_GIVEN
37
- keywords << :ext if legacy_ext != NOT_GIVEN
38
- keywords << :directory_separator if legacy_directory_separator != NOT_GIVEN
39
- end
40
-
56
+ ##
57
+ # Produces a random file name.
58
+ #
59
+ # @param dir [String] Specifies the path used for the generated file.
60
+ # @param name [String] Specifies the filename used for the generated file.
61
+ # @param ext [String] Specifies the extension used the generated file.
62
+ # @param directory_separator [String] Specifies the separator between the directory and name elements.
63
+ # @return [String]
64
+ #
65
+ # @example
66
+ # Faker::File.file_name(dir: 'path/to') #=> "path/to/something_random.jpg"
67
+ # Faker::File.file_name(dir: 'foo/bar', name: 'baz') #=> "foo/bar/baz.zip"
68
+ # Faker::File.file_name(dir: 'foo/bar', name: 'baz', ext: 'doc') #=> "foo/bar/baz.doc"
69
+ # Faker::File.file_name(dir: 'foo/bar', name: 'baz', ext: 'mp3', directory_separator: '\\') #=> "foo/bar\\baz.mp3"
70
+ #
71
+ # @faker.version 1.6.4
72
+ def file_name(dir: nil, name: nil, ext: nil, directory_separator: ::File::Separator)
41
73
  dir ||= dir(segment_count: 1)
42
74
  name ||= Faker::Lorem.word.downcase
43
75
  ext ||= extension
@@ -6,7 +6,21 @@ module Faker
6
6
  diners_club jcb switch solo dankort
7
7
  maestro forbrugsforeningen laser].freeze
8
8
 
9
+ MARKET_LIST = %i[nyse nasdaq].freeze
10
+
9
11
  class << self
12
+ ##
13
+ # Produces a random credit card number.
14
+ #
15
+ # @param types [String] Specific credit card type.
16
+ # @return [String]
17
+ #
18
+ # @example
19
+ # Faker::Finance.credit_card #=> "3018-348979-1853"
20
+ # Faker::Finance.credit_card(:mastercard) #=> "6771-8921-2291-6236"
21
+ # Faker::Finance.credit_card(:mastercard, :visa) #=> "4448-8934-1277-7195"
22
+ #
23
+ # @faker.version 1.2.0
10
24
  def credit_card(*types)
11
25
  types = CREDIT_CARD_TYPES if types.empty?
12
26
  type = sample(types)
@@ -14,9 +28,9 @@ module Faker
14
28
 
15
29
  # calculate the luhn checksum digit
16
30
  multiplier = 1
17
- luhn_sum = template.gsub(/[^0-9]/, '').split('').reverse.map(&:to_i).inject(0) do |sum, digit|
31
+ luhn_sum = template.gsub(/[^0-9]/, '').chars.reverse.map(&:to_i).inject(0) do |sum, digit|
18
32
  multiplier = (multiplier == 2 ? 1 : 2)
19
- sum + (digit * multiplier).to_s.split('').map(&:to_i).inject(0) { |digit_sum, cur| digit_sum + cur }
33
+ sum + (digit * multiplier).to_s.chars.map(&:to_i).inject(0) { |digit_sum, cur| digit_sum + cur }
20
34
  end
21
35
 
22
36
  # the sum plus whatever the last digit is must be a multiple of 10. So, the
@@ -26,11 +40,19 @@ module Faker
26
40
  template.gsub('L', luhn_digit.to_s)
27
41
  end
28
42
 
29
- def vat_number(legacy_country = NOT_GIVEN, country: 'BR')
30
- warn_for_deprecated_arguments do |keywords|
31
- keywords << :country if legacy_country != NOT_GIVEN
32
- end
33
-
43
+ ##
44
+ # Produces a random vat number.
45
+ #
46
+ # @param country [String] Two capital letter country code to use for the vat number.
47
+ # @return [String]
48
+ #
49
+ # @example
50
+ # Faker::Finance.vat_number #=> "BR38.395.329/2471-83"
51
+ # Faker::Finance.vat_number('DE') #=> "DE593306671"
52
+ # Faker::Finance.vat_number('ZA') #=> "ZA79494416181"
53
+ #
54
+ # @faker.version 1.9.2
55
+ def vat_number(country: 'BR')
34
56
  numerify(fetch("finance.vat_number.#{country}"))
35
57
  rescue I18n::MissingTranslationData
36
58
  raise ArgumentError, "Could not find vat number for #{country}"
@@ -39,6 +61,52 @@ module Faker
39
61
  def vat_number_keys
40
62
  translate('faker.finance.vat_number').keys
41
63
  end
64
+
65
+ ##
66
+ # Returns a randomly-selected stock ticker from a specified market.
67
+ #
68
+ # @param markets [String] The name of the market to choose the ticker from (e.g. NYSE, NASDAQ)
69
+ # @return [String]
70
+ #
71
+ # @example
72
+ # Faker::Finance.ticker #=> 'AMZN'
73
+ # Faker::Finance.vat_number('NASDAQ') #=> 'GOOG'
74
+ #
75
+ # @faker.version next
76
+ def ticker(*markets)
77
+ markets = MARKET_LIST if markets.empty?
78
+ market = sample(markets)
79
+ fetch("finance.ticker.#{market}")
80
+ rescue I18n::MissingTranslationData
81
+ raise ArgumentError, "Could not find market named #{market}"
82
+ end
83
+
84
+ ##
85
+ # Returns a randomly-selected stock market.
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @example
90
+ # Faker::Finance.stock_market #=> 'NASDAQ'
91
+ #
92
+ # @faker.version next
93
+ def stock_market
94
+ fetch('finance.stock_market')
95
+ end
96
+
97
+ ##
98
+ # Returns a random condominium fiscal code.
99
+ #
100
+ # @param country [String] Two capital letter country code to use for the vat number.
101
+ # @return [String]
102
+ #
103
+ # @example
104
+ # Faker::Finance.condominium_fiscal_code #=> "012345678"
105
+ #
106
+ # @faker.version next
107
+ def condominium_fiscal_code(country: 'IT')
108
+ numerify(fetch("finance.condominium_fiscal_code.#{country}"))
109
+ end
42
110
  end
43
111
  end
44
112
  end
@@ -5,6 +5,19 @@ module Faker
5
5
  flexible :food
6
6
 
7
7
  class << self
8
+ ##
9
+ # Retrieves an allergen.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Food.allergen #=> "Peanuts"
15
+ #
16
+ # @faker.version next
17
+ def allergen
18
+ fetch('food.allergens')
19
+ end
20
+
8
21
  ##
9
22
  # Retrieves a typical dish from each country.
10
23
  #
@@ -93,11 +106,11 @@ module Faker
93
106
  #
94
107
  # @faker.version 1.7.0
95
108
  def measurement
96
- fetch('food.measurement_sizes') + ' ' + fetch('food.measurements')
109
+ "#{fetch('food.measurement_sizes')} #{fetch('food.measurements')}"
97
110
  end
98
111
 
99
112
  ##
100
- # Retrieves metric mesurements
113
+ # Retrieves metric measurements
101
114
  #
102
115
  # @return [String]
103
116
  #
@@ -108,6 +121,19 @@ module Faker
108
121
  def metric_measurement
109
122
  fetch('food.metric_measurements')
110
123
  end
124
+
125
+ ##
126
+ # Retrieves ethnic category
127
+ #
128
+ # @return [String]
129
+ #
130
+ # @example
131
+ # Faker::Food.ethnic_category #=> "Indian cuisine"
132
+ #
133
+ # @faker.version next
134
+ def ethnic_category
135
+ fetch('food.ethnic_category')
136
+ end
111
137
  end
112
138
  end
113
139
  end
@@ -37,7 +37,7 @@ module Faker
37
37
  # @example
38
38
  # Faker::Gender.short_binary_type #=> "f"
39
39
  #
40
- # @faker.version next
40
+ # @faker.version 2.13.0
41
41
  def short_binary_type
42
42
  fetch('gender.short_binary_types')
43
43
  end