ffaker 2.11.0 → 2.16.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 (546) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +35 -0
  3. data/Gemfile +2 -0
  4. data/README.md +8 -1
  5. data/REFERENCE.md +113 -4
  6. data/Rakefile +2 -6
  7. data/ffaker.gemspec +16 -5
  8. data/lib/ffaker.rb +23 -13
  9. data/lib/ffaker/address.rb +3 -3
  10. data/lib/ffaker/address_au.rb +7 -9
  11. data/lib/ffaker/address_br.rb +1 -1
  12. data/lib/ffaker/address_ca.rb +2 -2
  13. data/lib/ffaker/address_ch.rb +1 -1
  14. data/lib/ffaker/address_ch_de.rb +1 -1
  15. data/lib/ffaker/address_ch_fr.rb +1 -1
  16. data/lib/ffaker/address_ch_it.rb +1 -1
  17. data/lib/ffaker/address_da.rb +1 -1
  18. data/lib/ffaker/address_de.rb +1 -1
  19. data/lib/ffaker/address_fi.rb +1 -1
  20. data/lib/ffaker/address_fr.rb +6 -2
  21. data/lib/ffaker/address_gr.rb +1 -1
  22. data/lib/ffaker/address_id.rb +0 -1
  23. data/lib/ffaker/address_in.rb +2 -2
  24. data/lib/ffaker/address_ja.rb +0 -1
  25. data/lib/ffaker/address_kr.rb +0 -1
  26. data/lib/ffaker/address_mx.rb +7 -469
  27. data/lib/ffaker/address_nl.rb +2 -4
  28. data/lib/ffaker/address_pl.rb +0 -2
  29. data/lib/ffaker/address_ru.rb +1 -1
  30. data/lib/ffaker/address_se.rb +1 -1
  31. data/lib/ffaker/address_sn.rb +1 -2
  32. data/lib/ffaker/address_ua.rb +2 -2
  33. data/lib/ffaker/address_uk.rb +1 -1
  34. data/lib/ffaker/address_us.rb +23 -3
  35. data/lib/ffaker/airline.rb +1 -1
  36. data/lib/ffaker/{animals.rb → animal.rb} +1 -1
  37. data/lib/ffaker/{animals_cn.rb → animal_cn.rb} +0 -1
  38. data/lib/ffaker/animal_es.rb +12 -0
  39. data/lib/ffaker/animal_pl.rb +0 -2
  40. data/lib/ffaker/{animals_us.rb → animal_us.rb} +0 -1
  41. data/lib/ffaker/avatar.rb +23 -5
  42. data/lib/ffaker/aws.rb +1 -1
  43. data/lib/ffaker/bacon_ipsum.rb +1 -1
  44. data/lib/ffaker/bank.rb +118 -0
  45. data/lib/ffaker/book.rb +1 -1
  46. data/lib/ffaker/boolean.rb +1 -1
  47. data/lib/ffaker/cheesy_lingo.rb +3 -6
  48. data/lib/ffaker/code.rb +17 -1
  49. data/lib/ffaker/color.rb +7 -7
  50. data/lib/ffaker/color_pl.rb +14 -0
  51. data/lib/ffaker/color_ua.rb +1 -1
  52. data/lib/ffaker/company.rb +1 -1
  53. data/lib/ffaker/company_cn.rb +1 -1
  54. data/lib/ffaker/company_it.rb +4 -2
  55. data/lib/ffaker/company_ja.rb +24 -0
  56. data/lib/ffaker/company_se.rb +1 -1
  57. data/lib/ffaker/conference.rb +1 -1
  58. data/lib/ffaker/courses.rb +1 -1
  59. data/lib/ffaker/currency.rb +1 -1
  60. data/lib/ffaker/data/address/city_suffixes +1 -1
  61. data/lib/ffaker/data/address/country +1 -1
  62. data/lib/ffaker/data/address/country_code +1 -1
  63. data/lib/ffaker/data/address/neighborhood +1 -1
  64. data/lib/ffaker/data/address/street_suffix +1 -1
  65. data/lib/ffaker/data/address_ca/city +99 -99
  66. data/lib/ffaker/data/address_ca/province +1 -1
  67. data/lib/ffaker/data/address_de/city +1 -1
  68. data/lib/ffaker/data/address_de/state +1 -1
  69. data/lib/ffaker/data/address_fr/city +1 -1
  70. data/lib/ffaker/data/address_fr/region +27 -0
  71. data/lib/ffaker/data/address_gr/city +1 -1
  72. data/lib/ffaker/data/address_gr/region +1 -1
  73. data/lib/ffaker/data/address_gr/street +1 -1
  74. data/lib/ffaker/data/address_ja/city +0 -23
  75. data/lib/ffaker/data/address_mx/ags +11 -0
  76. data/lib/ffaker/data/address_mx/bc +5 -0
  77. data/lib/ffaker/data/address_mx/bcs +5 -0
  78. data/lib/ffaker/data/address_mx/camp +11 -0
  79. data/lib/ffaker/data/address_mx/chih +67 -0
  80. data/lib/ffaker/data/address_mx/chis +118 -0
  81. data/lib/ffaker/data/address_mx/coah +38 -0
  82. data/lib/ffaker/data/address_mx/col +10 -0
  83. data/lib/ffaker/data/address_mx/df +16 -0
  84. data/lib/ffaker/data/address_mx/dgo +39 -0
  85. data/lib/ffaker/data/address_mx/gro +81 -0
  86. data/lib/ffaker/data/address_mx/gto +46 -0
  87. data/lib/ffaker/data/address_mx/hgo +84 -0
  88. data/lib/ffaker/data/address_mx/jal +125 -0
  89. data/lib/ffaker/data/address_mx/mex +125 -0
  90. data/lib/ffaker/data/address_mx/mich +113 -0
  91. data/lib/ffaker/data/address_mx/mor +33 -0
  92. data/lib/ffaker/data/address_mx/nay +20 -0
  93. data/lib/ffaker/data/address_mx/nl +51 -0
  94. data/lib/ffaker/data/address_mx/oax +570 -0
  95. data/lib/ffaker/data/address_mx/pue +217 -0
  96. data/lib/ffaker/data/address_mx/qr +10 -0
  97. data/lib/ffaker/data/address_mx/qro +18 -0
  98. data/lib/ffaker/data/address_mx/sin +18 -0
  99. data/lib/ffaker/data/address_mx/slp +58 -0
  100. data/lib/ffaker/data/address_mx/son +72 -0
  101. data/lib/ffaker/data/address_mx/state +1 -1
  102. data/lib/ffaker/data/address_mx/state_abbr +1 -1
  103. data/lib/ffaker/data/address_mx/tab +17 -0
  104. data/lib/ffaker/data/address_mx/tamps +43 -0
  105. data/lib/ffaker/data/address_mx/tlax +60 -0
  106. data/lib/ffaker/data/address_mx/ver +212 -0
  107. data/lib/ffaker/data/address_mx/yuc +106 -0
  108. data/lib/ffaker/data/address_mx/zac +58 -0
  109. data/lib/ffaker/data/address_ru/city +1 -1
  110. data/lib/ffaker/data/address_se/city +1 -1
  111. data/lib/ffaker/data/address_se/countries +1 -1
  112. data/lib/ffaker/data/address_se/street +1 -1
  113. data/lib/ffaker/data/address_sn/arrondissements +1 -1
  114. data/lib/ffaker/data/address_sn/departements +1 -1
  115. data/lib/ffaker/data/address_sn/regions +1 -1
  116. data/lib/ffaker/data/address_uk/county +1 -1
  117. data/lib/ffaker/data/address_us/state +1 -1
  118. data/lib/ffaker/data/address_us/state_abbr +1 -2
  119. data/lib/ffaker/data/address_us/state_and_territories_abbr +1 -1
  120. data/lib/ffaker/data/animal_cn/common_names +1 -1
  121. data/lib/ffaker/data/animal_es/common_names +135 -0
  122. data/lib/ffaker/data/aws/ec2_reserved_instance_tenancy +1 -1
  123. data/lib/ffaker/data/aws/ec2_reserved_offering_type +1 -1
  124. data/lib/ffaker/data/aws/ec2_reserved_product_description +1 -1
  125. data/lib/ffaker/data/bank/card_types +12 -0
  126. data/lib/ffaker/data/book/nouns +2 -2
  127. data/lib/ffaker/data/cheesy_lingo/cheesy_phrases +1 -1
  128. data/lib/ffaker/data/cheesy_lingo/cheesy_words +1 -1
  129. data/lib/ffaker/data/color/names_list +1 -1
  130. data/lib/ffaker/data/color_pl/names_list +122 -0
  131. data/lib/ffaker/data/company/bs_mid +1 -1
  132. data/lib/ffaker/data/company/bs_pos +1 -1
  133. data/lib/ffaker/data/company/bs_pre +1 -1
  134. data/lib/ffaker/data/company/catch_mid +1 -1
  135. data/lib/ffaker/data/company/catch_pos +1 -1
  136. data/lib/ffaker/data/company/catch_pre +1 -1
  137. data/lib/ffaker/data/company/position_areas +1 -1
  138. data/lib/ffaker/data/conference/conference_list +1 -1
  139. data/lib/ffaker/data/currency/currency_code +1 -1
  140. data/lib/ffaker/data/currency/currency_name +1 -1
  141. data/lib/ffaker/data/currency/currency_symbol +0 -1
  142. data/lib/ffaker/data/dizzle_ipsum/dizzle_words +1 -1
  143. data/lib/ffaker/data/education/major_noun +1 -1
  144. data/lib/ffaker/data/education/school_suffix +1 -1
  145. data/lib/ffaker/data/education_cn/city +1 -1
  146. data/lib/ffaker/data/education_cn/major +1 -1
  147. data/lib/ffaker/data/education_cn/province +1 -1
  148. data/lib/ffaker/data/education_cn/school_type +1 -1
  149. data/lib/ffaker/data/food/fruit +1 -1
  150. data/lib/ffaker/data/food/herb_spice +1 -1
  151. data/lib/ffaker/data/food/meat +1 -1
  152. data/lib/ffaker/data/food/vegetable +1 -1
  153. data/lib/ffaker/data/hipster_ipsum/hipster_words +1 -1
  154. data/lib/ffaker/data/identification_mx/estados_curp +1 -1
  155. data/lib/ffaker/data/job/job_adj +1 -1
  156. data/lib/ffaker/data/job/job_noun +1 -1
  157. data/lib/ffaker/data/job/job_prefix +1 -1
  158. data/lib/ffaker/data/job_fr/job_prefixes +1 -1
  159. data/lib/ffaker/data/locale/language +1 -1
  160. data/lib/ffaker/data/locale/language_code +1 -1
  161. data/lib/ffaker/data/lorem/characters +1 -1
  162. data/lib/ffaker/data/lorem/words +1 -1
  163. data/lib/ffaker/data/lorem_ar/words +1 -1
  164. data/lib/ffaker/data/lorem_cn/words +1 -1
  165. data/lib/ffaker/data/lorem_fr/words +1 -1
  166. data/lib/ffaker/data/movie/adj_and_adv +1 -1
  167. data/lib/ffaker/data/movie/nouns +3 -3
  168. data/lib/ffaker/data/movie/prefixes +1 -1
  169. data/lib/ffaker/data/name/first_names_female +0 -230
  170. data/lib/ffaker/data/name/first_names_male +0 -37
  171. data/lib/ffaker/data/name/pronouns +6 -0
  172. data/lib/ffaker/data/name_ar/first_names_female +1 -1
  173. data/lib/ffaker/data/name_ar/first_names_male +1 -1
  174. data/lib/ffaker/data/name_ar/last_names +1 -1
  175. data/lib/ffaker/data/name_cn/first_names +1 -1
  176. data/lib/ffaker/data/name_cn/last_names +1 -1
  177. data/lib/ffaker/data/name_cs/female_first_names +40 -0
  178. data/lib/ffaker/data/name_cs/female_last_names +50 -0
  179. data/lib/ffaker/data/name_cs/male_first_names +88 -0
  180. data/lib/ffaker/data/name_cs/male_last_names +49 -0
  181. data/lib/ffaker/data/name_cs/prefixes +4 -4
  182. data/lib/ffaker/data/name_de/first_names +1 -1
  183. data/lib/ffaker/data/name_de/last_names +1 -1
  184. data/lib/ffaker/data/name_fr/first_names +1 -1
  185. data/lib/ffaker/data/name_fr/last_names +1 -1
  186. data/lib/ffaker/data/name_ga/first_names_female +1 -1
  187. data/lib/ffaker/data/name_ga/first_names_male +1 -1
  188. data/lib/ffaker/data/name_gr/female_first_names +1 -1
  189. data/lib/ffaker/data/name_gr/female_last_names +1 -1
  190. data/lib/ffaker/data/name_gr/male_first_names +1 -1
  191. data/lib/ffaker/data/name_gr/male_last_names +1 -1
  192. data/lib/ffaker/data/name_it/first_names +1 -1
  193. data/lib/ffaker/data/name_it/last_names +1 -1
  194. data/lib/ffaker/data/name_ja/first_names +1 -1
  195. data/lib/ffaker/data/name_ja/last_names +1 -1
  196. data/lib/ffaker/data/name_kh/first_names +1 -1
  197. data/lib/ffaker/data/name_kh/nick_names +1 -1
  198. data/lib/ffaker/data/name_kr/first_names +1 -1
  199. data/lib/ffaker/data/name_kr/last_names +1 -1
  200. data/lib/ffaker/data/name_mx/female_first_names +1 -1
  201. data/lib/ffaker/data/name_mx/last_names +1 -1
  202. data/lib/ffaker/data/name_mx/male_first_names +1 -1
  203. data/lib/ffaker/data/name_ph/autochthonous_surnames +1 -1
  204. data/lib/ffaker/data/name_ph/spanish_surnames +1 -1
  205. data/lib/ffaker/data/name_ru/first_names_male +0 -1
  206. data/lib/ffaker/data/name_se/first_names_female +1 -1
  207. data/lib/ffaker/data/name_se/first_names_male +1 -1
  208. data/lib/ffaker/data/name_se/last_names +1 -1
  209. data/lib/ffaker/data/name_sn/first_names_female +1 -1
  210. data/lib/ffaker/data/name_sn/first_names_male +1 -1
  211. data/lib/ffaker/data/name_sn/last_names +1 -1
  212. data/lib/ffaker/data/name_th/first_names +1 -1
  213. data/lib/ffaker/data/name_th/last_names +1 -1
  214. data/lib/ffaker/data/name_th/nick_names +1 -1
  215. data/lib/ffaker/data/nato_alphabet/alphabet_codes +26 -0
  216. data/lib/ffaker/data/nato_alphabet/numeric_codes +10 -0
  217. data/lib/ffaker/data/phone_number_nl/area_codes +142 -0
  218. data/lib/ffaker/data/phone_number_ru/home_phone_prefixes +107 -0
  219. data/lib/ffaker/data/phone_number_ru/mobile_phone_prefixes +61 -0
  220. data/lib/ffaker/data/phone_number_se/phone_prefix +1 -1
  221. data/lib/ffaker/data/phone_number_ua/home_phone_prefixes +29 -0
  222. data/lib/ffaker/data/phone_number_ua/mobile_phone_prefixes +11 -0
  223. data/lib/ffaker/data/product/adj +1 -1
  224. data/lib/ffaker/data/product/b1 +1 -1
  225. data/lib/ffaker/data/skill/specialty_end +1 -1
  226. data/lib/ffaker/data/skill/specialty_start +1 -1
  227. data/lib/ffaker/data/skill/tech_skills +1 -1
  228. data/lib/ffaker/data/sport_pl/summer +53 -0
  229. data/lib/ffaker/data/sport_pl/winter +14 -0
  230. data/lib/ffaker/data/vehicle/color_prefixes +25 -0
  231. data/lib/ffaker/data/vehicle/displacements_list +1 -1
  232. data/lib/ffaker/data/vehicle/fuel_types_list +1 -1
  233. data/lib/ffaker/data/vehicle/makes_list +1 -1
  234. data/lib/ffaker/data/vehicle/transmissions_list +1 -1
  235. data/lib/ffaker/data/vehicle/upholstery_list +1 -1
  236. data/lib/ffaker/data/venue/venue_list +1 -1
  237. data/lib/ffaker/dizzle_ipsum.rb +1 -1
  238. data/lib/ffaker/education.rb +9 -10
  239. data/lib/ffaker/education_cn.rb +4 -8
  240. data/lib/ffaker/filesystem.rb +1 -1
  241. data/lib/ffaker/food.rb +2 -0
  242. data/lib/ffaker/gender.rb +1 -1
  243. data/lib/ffaker/gender_br.rb +1 -1
  244. data/lib/ffaker/gender_cn.rb +1 -1
  245. data/lib/ffaker/gender_id.rb +0 -1
  246. data/lib/ffaker/gender_ja.rb +18 -0
  247. data/lib/ffaker/gender_jp.rb +2 -12
  248. data/lib/ffaker/gender_kr.rb +1 -1
  249. data/lib/ffaker/gender_pl.rb +0 -2
  250. data/lib/ffaker/geolocation.rb +32 -22
  251. data/lib/ffaker/guid.rb +1 -1
  252. data/lib/ffaker/healthcare_ipsum.rb +1 -1
  253. data/lib/ffaker/healthcare_ru.rb +0 -1
  254. data/lib/ffaker/hipster_ipsum.rb +1 -1
  255. data/lib/ffaker/html_ipsum.rb +3 -3
  256. data/lib/ffaker/identification.rb +5 -2
  257. data/lib/ffaker/identification_br.rb +1 -1
  258. data/lib/ffaker/identification_es.rb +1 -1
  259. data/lib/ffaker/identification_es_cl.rb +6 -3
  260. data/lib/ffaker/identification_es_co.rb +2 -2
  261. data/lib/ffaker/identification_in.rb +15 -0
  262. data/lib/ffaker/identification_kr.rb +2 -2
  263. data/lib/ffaker/identification_mx.rb +13 -17
  264. data/lib/ffaker/identification_pl.rb +77 -0
  265. data/lib/ffaker/identification_tw.rb +23 -0
  266. data/lib/ffaker/image.rb +2 -0
  267. data/lib/ffaker/internet.rb +17 -24
  268. data/lib/ffaker/internet_se.rb +7 -7
  269. data/lib/ffaker/job.rb +1 -1
  270. data/lib/ffaker/job_br.rb +1 -1
  271. data/lib/ffaker/job_cn.rb +1 -1
  272. data/lib/ffaker/job_fr.rb +1 -1
  273. data/lib/ffaker/job_ja.rb +0 -1
  274. data/lib/ffaker/job_kr.rb +1 -1
  275. data/lib/ffaker/job_vn.rb +0 -1
  276. data/lib/ffaker/locale.rb +8 -12
  277. data/lib/ffaker/lorem.rb +6 -7
  278. data/lib/ffaker/lorem_ar.rb +1 -1
  279. data/lib/ffaker/lorem_cn.rb +1 -1
  280. data/lib/ffaker/lorem_fr.rb +1 -1
  281. data/lib/ffaker/lorem_ie.rb +0 -1
  282. data/lib/ffaker/lorem_ja.rb +1 -1
  283. data/lib/ffaker/lorem_kr.rb +1 -1
  284. data/lib/ffaker/lorem_pl.rb +0 -2
  285. data/lib/ffaker/lorem_ru.rb +0 -1
  286. data/lib/ffaker/lorem_ua.rb +3 -5
  287. data/lib/ffaker/movie.rb +7 -4
  288. data/lib/ffaker/music.rb +1 -1
  289. data/lib/ffaker/name.rb +5 -1
  290. data/lib/ffaker/name_ar.rb +0 -1
  291. data/lib/ffaker/name_br.rb +1 -1
  292. data/lib/ffaker/name_cn.rb +1 -1
  293. data/lib/ffaker/name_cs.rb +7 -7
  294. data/lib/ffaker/name_da.rb +2 -2
  295. data/lib/ffaker/name_de.rb +1 -1
  296. data/lib/ffaker/name_es.rb +0 -2
  297. data/lib/ffaker/name_fr.rb +1 -2
  298. data/lib/ffaker/name_ga.rb +1 -1
  299. data/lib/ffaker/name_gr.rb +2 -3
  300. data/lib/ffaker/name_id.rb +0 -1
  301. data/lib/ffaker/name_in.rb +1 -1
  302. data/lib/ffaker/name_it.rb +2 -3
  303. data/lib/ffaker/name_ja.rb +1 -1
  304. data/lib/ffaker/name_kh.rb +2 -0
  305. data/lib/ffaker/name_kr.rb +1 -1
  306. data/lib/ffaker/name_mx.rb +4 -4
  307. data/lib/ffaker/name_nb.rb +1 -1
  308. data/lib/ffaker/name_nl.rb +1 -1
  309. data/lib/ffaker/name_ph.rb +1 -1
  310. data/lib/ffaker/name_pl.rb +1 -2
  311. data/lib/ffaker/name_ru.rb +1 -1
  312. data/lib/ffaker/name_se.rb +1 -1
  313. data/lib/ffaker/name_sn.rb +3 -6
  314. data/lib/ffaker/name_th.rb +1 -1
  315. data/lib/ffaker/name_th_en.rb +1 -1
  316. data/lib/ffaker/name_tw.rb +0 -1
  317. data/lib/ffaker/name_ua.rb +1 -1
  318. data/lib/ffaker/name_vn.rb +1 -1
  319. data/lib/ffaker/nato_alphabet.rb +2 -4
  320. data/lib/ffaker/phone_number.rb +1 -1
  321. data/lib/ffaker/phone_number_au.rb +11 -12
  322. data/lib/ffaker/phone_number_br.rb +6 -13
  323. data/lib/ffaker/phone_number_ch.rb +1 -1
  324. data/lib/ffaker/phone_number_cu.rb +18 -27
  325. data/lib/ffaker/phone_number_da.rb +1 -2
  326. data/lib/ffaker/phone_number_de.rb +1 -2
  327. data/lib/ffaker/phone_number_fr.rb +3 -12
  328. data/lib/ffaker/phone_number_id.rb +2 -6
  329. data/lib/ffaker/phone_number_it.rb +1 -1
  330. data/lib/ffaker/phone_number_kr.rb +1 -1
  331. data/lib/ffaker/phone_number_mx.rb +1 -2
  332. data/lib/ffaker/phone_number_nl.rb +9 -12
  333. data/lib/ffaker/phone_number_pl.rb +3 -4
  334. data/lib/ffaker/phone_number_ru.rb +120 -0
  335. data/lib/ffaker/phone_number_se.rb +1 -1
  336. data/lib/ffaker/phone_number_sg.rb +1 -1
  337. data/lib/ffaker/phone_number_sn.rb +12 -19
  338. data/lib/ffaker/phone_number_tw.rb +3 -10
  339. data/lib/ffaker/phone_number_ua.rb +42 -0
  340. data/lib/ffaker/product.rb +10 -12
  341. data/lib/ffaker/sem_ver.rb +19 -0
  342. data/lib/ffaker/skill.rb +1 -1
  343. data/lib/ffaker/sport.rb +2 -0
  344. data/lib/ffaker/sport_pl.rb +25 -0
  345. data/lib/ffaker/sport_us.rb +2 -0
  346. data/lib/ffaker/ssn.rb +1 -1
  347. data/lib/ffaker/ssn_mx.rb +1 -2
  348. data/lib/ffaker/ssn_se.rb +16 -25
  349. data/lib/ffaker/string.rb +7 -6
  350. data/lib/ffaker/time.rb +9 -8
  351. data/lib/ffaker/tweet.rb +4 -4
  352. data/lib/ffaker/unit.rb +1 -1
  353. data/lib/ffaker/unit_english.rb +1 -1
  354. data/lib/ffaker/unit_metric.rb +1 -1
  355. data/lib/ffaker/utils/array_utils.rb +7 -4
  356. data/lib/ffaker/utils/module_utils.rb +2 -0
  357. data/lib/ffaker/utils/random_utils.rb +4 -0
  358. data/lib/ffaker/utils/unique_utils.rb +0 -2
  359. data/lib/ffaker/vehicle.rb +4 -8
  360. data/lib/ffaker/venue.rb +1 -1
  361. data/lib/ffaker/youtube.rb +1 -1
  362. data/lib/version.rb +5 -0
  363. data/scripts/benchmark.rb +12 -11
  364. data/scripts/profiling.rb +2 -0
  365. data/scripts/reference.rb +5 -2
  366. data/test/helper.rb +37 -0
  367. data/test/test_address.rb +1 -1
  368. data/test/test_address_au.rb +4 -5
  369. data/test/test_address_br.rb +1 -1
  370. data/test/test_address_ca.rb +1 -1
  371. data/test/test_address_ch.rb +1 -1
  372. data/test/test_address_ch_de.rb +1 -1
  373. data/test/test_address_ch_fr.rb +1 -1
  374. data/test/test_address_ch_it.rb +1 -1
  375. data/test/test_address_da.rb +1 -1
  376. data/test/test_address_de.rb +1 -1
  377. data/test/test_address_fi.rb +3 -4
  378. data/test/test_address_fr.rb +2 -3
  379. data/test/test_address_gr.rb +1 -1
  380. data/test/test_address_id.rb +0 -1
  381. data/test/test_address_in.rb +1 -1
  382. data/test/test_address_ja.rb +0 -1
  383. data/test/test_address_kr.rb +0 -1
  384. data/test/test_address_mx.rb +1 -2
  385. data/test/test_address_nl.rb +2 -2
  386. data/test/test_address_pl.rb +0 -1
  387. data/test/test_address_ru.rb +1 -1
  388. data/test/test_address_se.rb +3 -3
  389. data/test/test_address_sn.rb +1 -4
  390. data/test/test_address_ua.rb +1 -1
  391. data/test/test_address_uk.rb +1 -1
  392. data/test/test_address_us.rb +10 -1
  393. data/test/test_airline.rb +1 -1
  394. data/test/test_animal.rb +1 -1
  395. data/test/test_animal_cn.rb +0 -1
  396. data/test/test_animal_es.rb +17 -0
  397. data/test/test_animal_pl.rb +0 -1
  398. data/test/test_animal_us.rb +0 -1
  399. data/test/test_array_utils.rb +2 -3
  400. data/test/test_avatar.rb +4 -2
  401. data/test/test_aws.rb +1 -1
  402. data/test/test_bacon_ipsum.rb +1 -1
  403. data/test/test_bank.rb +54 -0
  404. data/test/test_book.rb +1 -1
  405. data/test/test_boolean.rb +2 -2
  406. data/test/test_cheesy_lingo.rb +4 -2
  407. data/test/test_code.rb +22 -2
  408. data/test/test_color.rb +4 -4
  409. data/test/test_color_pl.rb +13 -0
  410. data/test/test_color_ua.rb +1 -1
  411. data/test/test_company.rb +3 -3
  412. data/test/test_company_cn.rb +1 -1
  413. data/test/test_company_it.rb +1 -1
  414. data/test/test_company_ja.rb +28 -0
  415. data/test/test_company_se.rb +1 -1
  416. data/test/test_conference.rb +1 -1
  417. data/test/test_course_mathematiques.rb +2 -0
  418. data/test/test_course_philosophie.rb +2 -0
  419. data/test/test_currency.rb +1 -1
  420. data/test/test_dizzle_ipsum.rb +1 -1
  421. data/test/test_education.rb +1 -1
  422. data/test/test_education_cn.rb +0 -1
  423. data/test/test_faker.rb +1 -1
  424. data/test/test_filesystem.rb +3 -3
  425. data/test/test_food.rb +2 -2
  426. data/test/test_gender.rb +1 -1
  427. data/test/test_gender_br.rb +1 -1
  428. data/test/test_gender_cn.rb +1 -1
  429. data/test/test_gender_id.rb +0 -1
  430. data/test/test_gender_ja.rb +27 -0
  431. data/test/test_gender_jp.rb +1 -2
  432. data/test/test_gender_kr.rb +1 -1
  433. data/test/test_gender_pl.rb +1 -2
  434. data/test/test_geolocation.rb +3 -3
  435. data/test/test_guid.rb +1 -1
  436. data/test/test_healthcare_ipsum.rb +2 -0
  437. data/test/test_healthcare_ru.rb +1 -2
  438. data/test/test_hipster_ipsum.rb +2 -2
  439. data/test/test_html_ipsum.rb +13 -13
  440. data/test/test_identification.rb +2 -2
  441. data/test/test_identification_br.rb +1 -1
  442. data/test/test_identification_co.rb +3 -1
  443. data/test/test_identification_es.rb +1 -1
  444. data/test/test_identification_es_cl.rb +1 -1
  445. data/test/test_identification_es_mx.rb +1 -2
  446. data/test/test_identification_in.rb +20 -0
  447. data/test/test_identification_kr.rb +1 -1
  448. data/test/test_identification_pl.rb +28 -0
  449. data/test/test_identification_tw.rb +17 -0
  450. data/test/test_internet.rb +14 -14
  451. data/test/test_internet_se.rb +5 -5
  452. data/test/test_job.rb +1 -1
  453. data/test/test_job_br.rb +1 -1
  454. data/test/test_job_cn.rb +2 -2
  455. data/test/test_job_fr.rb +1 -1
  456. data/test/test_job_ja.rb +2 -2
  457. data/test/test_job_kr.rb +2 -2
  458. data/test/test_job_vn.rb +1 -2
  459. data/test/test_locale.rb +1 -1
  460. data/test/test_lorem.rb +1 -1
  461. data/test/test_lorem_ar.rb +2 -3
  462. data/test/test_lorem_cn.rb +7 -7
  463. data/test/test_lorem_fr.rb +5 -5
  464. data/test/test_lorem_ie.rb +2 -3
  465. data/test/test_lorem_ja.rb +4 -4
  466. data/test/test_lorem_kr.rb +4 -4
  467. data/test/test_lorem_pl.rb +2 -3
  468. data/test/test_lorem_ru.rb +3 -4
  469. data/test/test_lorem_ua.rb +4 -4
  470. data/test/test_module_utils.rb +1 -1
  471. data/test/test_movie.rb +1 -1
  472. data/test/test_music.rb +2 -2
  473. data/test/test_name.rb +6 -2
  474. data/test/test_name_ar.rb +0 -1
  475. data/test/test_name_br.rb +1 -1
  476. data/test/test_name_cn.rb +1 -1
  477. data/test/test_name_cs.rb +2 -3
  478. data/test/test_name_da.rb +5 -5
  479. data/test/test_name_de.rb +1 -1
  480. data/test/test_name_es.rb +0 -1
  481. data/test/test_name_fr.rb +1 -2
  482. data/test/test_name_ga.rb +1 -1
  483. data/test/test_name_gr.rb +1 -1
  484. data/test/test_name_id.rb +0 -1
  485. data/test/test_name_it.rb +1 -2
  486. data/test/test_name_ja.rb +1 -1
  487. data/test/test_name_kh.rb +9 -7
  488. data/test/test_name_kr.rb +1 -1
  489. data/test/test_name_mx.rb +1 -2
  490. data/test/test_name_nb.rb +1 -1
  491. data/test/test_name_nl.rb +1 -1
  492. data/test/test_name_ph.rb +2 -2
  493. data/test/test_name_pl.rb +0 -1
  494. data/test/test_name_ru.rb +4 -4
  495. data/test/test_name_se.rb +1 -1
  496. data/test/test_name_sn.rb +1 -2
  497. data/test/test_name_th.rb +1 -1
  498. data/test/test_name_th_en.rb +1 -1
  499. data/test/test_name_tw.rb +0 -1
  500. data/test/test_name_ua.rb +3 -3
  501. data/test/test_name_vn.rb +1 -1
  502. data/test/test_nato_alphabet.rb +1 -1
  503. data/test/test_phone_number.rb +1 -1
  504. data/test/test_phone_number_au.rb +4 -5
  505. data/test/test_phone_number_br.rb +2 -4
  506. data/test/test_phone_number_cu.rb +4 -11
  507. data/test/test_phone_number_da.rb +1 -2
  508. data/test/test_phone_number_de.rb +1 -2
  509. data/test/test_phone_number_fr.rb +0 -1
  510. data/test/test_phone_number_id.rb +0 -1
  511. data/test/test_phone_number_kr.rb +1 -1
  512. data/test/test_phone_number_mx.rb +1 -2
  513. data/test/test_phone_number_nl.rb +1 -2
  514. data/test/test_phone_number_pl.rb +1 -1
  515. data/test/test_phone_number_ru.rb +76 -0
  516. data/test/test_phone_number_se.rb +4 -4
  517. data/test/test_phone_number_sg.rb +1 -1
  518. data/test/test_phone_number_sn.rb +3 -4
  519. data/test/test_phone_number_tw.rb +0 -1
  520. data/test/test_phone_number_ua.rb +38 -0
  521. data/test/test_products.rb +1 -1
  522. data/test/test_sem_ver.rb +18 -0
  523. data/test/test_skill.rb +1 -1
  524. data/test/test_sport_pl.rb +30 -0
  525. data/test/test_sport_us.rb +0 -1
  526. data/test/test_sports.rb +1 -1
  527. data/test/test_ssn.rb +1 -1
  528. data/test/test_ssn_mx.rb +1 -2
  529. data/test/test_ssn_se.rb +9 -11
  530. data/test/test_string.rb +4 -4
  531. data/test/test_time.rb +14 -7
  532. data/test/test_tweet.rb +7 -7
  533. data/test/test_unique_utils.rb +1 -1
  534. data/test/test_units.rb +1 -2
  535. data/test/test_units_english.rb +1 -2
  536. data/test/test_units_metric.rb +1 -2
  537. data/test/test_vehicle.rb +1 -1
  538. data/test/test_venue.rb +1 -1
  539. data/test/test_youtube.rb +1 -1
  540. metadata +256 -159
  541. data/lib/ffaker/data/address_jp/city +0 -127
  542. data/lib/ffaker/data/address_jp/designated_city +0 -20
  543. data/lib/ffaker/data/address_jp/street +0 -37
  544. data/lib/ffaker/data/address_jp/tokyo_ward +0 -23
  545. data/lib/ffaker/data/address_jp/village +0 -183
  546. data/lib/ffaker/data/address_jp/ward +0 -188
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/address'
4
4
 
@@ -9,10 +9,8 @@ module FFaker
9
9
  extend ModuleUtils
10
10
  extend self
11
11
 
12
- POSTAL_CODE_FORMAT = ['#### ??'].freeze
13
-
14
12
  def postal_code
15
- FFaker.bothify POSTAL_CODE_FORMAT
13
+ FFaker::String.from_regexp(/[1-9]\d{3} [A-RT-Z][A-Z]/)
16
14
  end
17
15
 
18
16
  def zip_code
@@ -1,8 +1,6 @@
1
- # encoding: UTF-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module FFaker
5
- # Author Walerian Sobczak <walerian.sobczak@gmail.com> github.com/walerian777
6
4
  # Inspirations:
7
5
  # TERYT registry, available at: http://www.stat.gov.pl/broker/access/index.jspa
8
6
  module AddressPL
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/address'
4
4
 
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/address'
4
4
 
@@ -1,9 +1,8 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/address'
4
4
 
5
5
  module FFaker
6
- # Author PapePathe<pathe.sene@gmail.com> github.com/PapePathe
7
6
  module AddressSN
8
7
  include FFaker::Address
9
8
 
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/address'
4
4
 
@@ -32,7 +32,7 @@ module FFaker
32
32
  end
33
33
 
34
34
  def street_address(include_secondary = false)
35
- str = "#{street_name}, #{building_number}"
35
+ str = +"#{street_name}, #{building_number}"
36
36
  str << ", кв. #{appartment_number}" if include_secondary
37
37
  str
38
38
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/address'
4
4
 
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/address'
4
4
 
@@ -21,8 +21,12 @@ module FFaker
21
21
  fetch_sample(STATE)
22
22
  end
23
23
 
24
- def state_abbr
25
- fetch_sample(STATE_ABBR)
24
+ def state_abbr(st_name = nil)
25
+ return find_abbr(state) unless st_name
26
+
27
+ st_name = capitalize_all_words(st_name)
28
+ check_state_existence(st_name)
29
+ find_abbr(st_name)
26
30
  end
27
31
 
28
32
  def state_and_territories_abbr
@@ -36,5 +40,21 @@ module FFaker
36
40
  def continental_state_abbr
37
41
  fetch_sample(CONTINENTAL_STATE_ABBR)
38
42
  end
43
+
44
+ private
45
+
46
+ def check_state_existence(state_name)
47
+ return if STATE.include?(state_name)
48
+
49
+ raise ArgumentError, "Unexpected state name: '#{state_name}'"
50
+ end
51
+
52
+ def find_abbr(state)
53
+ STATE_ABBR[STATE.index(state)]
54
+ end
55
+
56
+ def capitalize_all_words(string)
57
+ string.split.map(&:capitalize).join(' ')
58
+ end
39
59
  end
40
60
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module Airline
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module Animal
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module FFaker
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module AnimalES
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def common_name
9
+ fetch_sample(COMMON_NAMES)
10
+ end
11
+ end
12
+ end
@@ -1,8 +1,6 @@
1
- # encoding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module FFaker
5
- # Author Walerian Sobczak <walerian.sobczak@gmail.com> github.com/walerian777
6
4
  # Inspirations:
7
5
  # https://www.ekologia.pl/wiedza/zwierzeta/
8
6
  module AnimalPL
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module FFaker
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module Avatar
@@ -8,11 +8,29 @@ module FFaker
8
8
  SUPPORTED_FORMATS = %w[png jpg bmp].freeze
9
9
 
10
10
  def image(slug = nil, size = '300x300', format = 'png', bgset = nil)
11
- raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
12
- raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)
13
- raise ArgumentError, 'Not a supported background number. Choose eather 1 or 2' unless bgset.nil? || (1..2).cover?(bgset.to_i)
11
+ check_passed_params(size, format, bgset)
14
12
  slug ||= FFaker::Lorem.words.join
15
- "https://robohash.org/#{slug}.#{format}?size=#{size}#{'&bgset=bg' + bgset.to_s unless bgset.nil?}"
13
+ "https://robohash.org/#{slug}.#{format}?size=#{size}#{'&bgset=bg' + bgset.to_s if bgset}"
14
+ end
15
+
16
+ private
17
+
18
+ def check_passed_params(size, format, bgset)
19
+ invalid_size_error unless size =~ /^[0-9]+x[0-9]+$/
20
+ invalid_format_error unless SUPPORTED_FORMATS.include?(format)
21
+ invalid_background_number unless bgset.nil? || (1..2).cover?(bgset.to_i)
22
+ end
23
+
24
+ def invalid_size_error
25
+ raise ArgumentError, 'Size should be specified in format 300x300'
26
+ end
27
+
28
+ def invalid_format_error
29
+ raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}"
30
+ end
31
+
32
+ def invalid_background_number
33
+ raise ArgumentError, 'Not a supported background number. Choose eather 1 or 2'
16
34
  end
17
35
  end
18
36
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module AWS
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'ffaker/lorem'
4
4
 
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module Bank
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ COUNTRIES = {
9
+ 'AA' => 'AL##########################', # Albania
10
+ 'AD' => 'AD######################', # Andorra
11
+ 'AT' => 'AT##################', # Austria
12
+ 'AZ' => 'AZ##????####################', # Azerbaijan
13
+ 'BH' => 'BH##????##############', # Bahrain
14
+ 'BY' => 'BY##????####################', # Belarus
15
+ 'BE' => 'BE##############', # Belgium
16
+ 'BA' => 'BA##################', # Bosnia and Herzegovina
17
+ 'BR' => 'BR#########################P#', # Brazil
18
+ 'BG' => 'BG##????##############', # Bulgaria
19
+ 'CR' => 'CR####################', # Costa Rica
20
+ 'HR' => 'HR###################', # Croatia
21
+ 'CY' => 'CY##########################', # Cyprus
22
+ 'CZ' => 'CZ######################', # Czech Republic
23
+ 'DK' => 'DK################', # Denmark
24
+ 'DO' => 'DO##????####################', # Dominican Republic
25
+ 'SV' => 'SV##????####################', # El Salvador
26
+ 'EE' => 'EE##################', # Estonia
27
+ 'FO' => 'FO################', # Faroe Islands
28
+ 'FI' => 'FI################', # Finland
29
+ 'FR' => 'FR#########################', # France
30
+ 'GE' => 'GE##??################', # Georgia
31
+ 'DE' => 'DE####################', # Germany
32
+ 'GI' => 'GI##????###############', # Gibraltar
33
+ 'GR' => 'GR#########################', # Greece
34
+ 'GL' => 'GL################', # Greenland
35
+ 'GT' => 'GT##AGRO####################', # Guatemala
36
+ 'VA' => 'VA####################', # Holy See
37
+ 'HU' => 'HU##########################', # Hungary
38
+ 'IS' => 'IS########################', # Iceland
39
+ 'IQ' => 'IQ##????###############', # Iraq
40
+ 'IE' => 'IE##????##############', # Ireland
41
+ 'IL' => 'IL#####################', # Israel
42
+ 'IT' => 'IT##X######################', # Italy
43
+ 'JO' => 'JO##????######################', # Jordan
44
+ 'KZ' => 'KZ##################', # Kazakhstan
45
+ 'XK' => 'XK##################', # Kosovo
46
+ 'KW' => 'KW##????######################', # Kuwait
47
+ 'LV' => 'LV##????#############', # Latvia
48
+ 'LB' => 'LB##########################', # Lebanon
49
+ 'LI' => 'LI###################', # Liechtenstein
50
+ 'LT' => 'LT##################', # Lithuania
51
+ 'LU' => 'LU##################', # Luxembourg
52
+ 'MT' => 'MT##MALT#######################', # Malta
53
+ 'MR' => 'MR#########################', # Mauritania
54
+ 'MU' => 'MU##????###################MUR', # Mauritius
55
+ 'MD' => 'MD##??##################', # Moldova
56
+ 'MC' => 'MC#########################', # Monaco
57
+ 'ME' => 'ME####################', # Montenegro
58
+ 'NL' => 'NL##????##########', # Netherlands
59
+ 'MK' => 'MK#################', # North Macedonia
60
+ 'NO' => 'NO#############', # Norway
61
+ 'PK' => 'PK##????################', # Pakistan
62
+ 'PS' => 'PS##PALS#####################', # Palestine
63
+ 'PL' => 'PL##########################', # Poland
64
+ 'PT' => 'PT#######################', # Portugal
65
+ 'QA' => 'QA##????#####################', # Qatar
66
+ 'RO' => 'RO##????################', # Romania
67
+ 'LC' => 'LC##????########################', # Saint Lucia
68
+ 'SM' => 'SM##P######################', # San Marino
69
+ 'ST' => 'ST#######################', # Sao Tome and Principe
70
+ 'SA' => 'SA######################', # Saudi Arabia
71
+ 'RS' => 'RS####################', # Serbia
72
+ 'SC' => 'SC##????####################USD', # Seychelles
73
+ 'SK' => 'SK######################', # Slovak Republic
74
+ 'SI' => 'SI#################', # Slovenia
75
+ 'ES' => 'ES######################', # Spain
76
+ 'SE' => 'SE######################', # Sweden
77
+ 'CH' => 'CH###################', # Switzerland
78
+ 'TL' => 'TL#####################', # Timor-Leste
79
+ 'TN' => 'TN######################', # Tunisia
80
+ 'TR' => 'TR########################', # Turkey
81
+ 'UA' => 'UA###########################', # Ukraine
82
+ 'AE' => 'AE#####################', # United Arab Emirates
83
+ 'GB' => 'GB##????##############', # United Kingdom
84
+ 'VG' => 'VG##????################' # Virgin Islands, British
85
+ }.freeze
86
+
87
+ def iban(country_code: nil)
88
+ return formatify_iban(fetch_sample(COUNTRIES.values)) unless country_code
89
+
90
+ check_country_existence(country_code)
91
+ formatify_iban(COUNTRIES[country_code.upcase])
92
+ end
93
+
94
+ def card_number
95
+ FFaker.numerify('#### #### #### ####')
96
+ end
97
+
98
+ def card_expiry_date(year_range: 5, year_latest: -5, format: '%m/%y')
99
+ FFaker::Time.date({ year_range: year_range, year_latest: year_latest }).strftime(format)
100
+ end
101
+
102
+ def card_type
103
+ fetch_sample(CARD_TYPES)
104
+ end
105
+
106
+ private
107
+
108
+ def formatify_iban(code)
109
+ FFaker.bothify(code).upcase
110
+ end
111
+
112
+ def check_country_existence(country_code)
113
+ return if COUNTRIES.keys.include?(country_code.upcase)
114
+
115
+ raise ArgumentError, "Unexpected country code: '#{country_code}'"
116
+ end
117
+ end
118
+ end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module Book
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module Boolean
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module CheesyLingo
@@ -31,11 +31,8 @@ module FFaker
31
31
  end
32
32
 
33
33
  def paragraph(number_of_phrases = 10)
34
- p = fetch_sample(CHEESY_PHRASES).capitalize.to_s
35
- (number_of_phrases - 1).times do |s|
36
- s = " #{fetch_sample(CHEESY_PHRASES)}"
37
- p << s
38
- end
34
+ p = +fetch_sample(CHEESY_PHRASES).capitalize
35
+ (number_of_phrases - 1).times { p << " #{fetch_sample(CHEESY_PHRASES)}" }
39
36
  p << '.'
40
37
  end
41
38
  end
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module FFaker
@@ -6,6 +5,23 @@ module FFaker
6
5
  extend ModuleUtils
7
6
  extend self
8
7
 
8
+ def npi(legacy: false)
9
+ max = legacy ? 299_999_999 : 999_999_999
10
+ base_npi = rand(100_000_000..max).to_s
11
+
12
+ summed_digits = base_npi
13
+ .chars
14
+ .each_with_index
15
+ .map { |n, i| (i.even? ? n.to_i * 2 : n).to_s }
16
+ .join
17
+ .chars
18
+ .inject(0) { |sum, digit| sum + digit.to_i }
19
+
20
+ npi_checksum = (10 - (24 + summed_digits) % 10).to_s.chars.last
21
+
22
+ base_npi + npi_checksum
23
+ end
24
+
9
25
  def ean
10
26
  ean = rand(100_000_000_000..999_999_999_999).to_s
11
27
 
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
4
  module Color
@@ -18,15 +18,15 @@ module FFaker
18
18
  end
19
19
 
20
20
  def rgb_list
21
- "#{random_rgb_value},#{random_rgb_value},#{random_rgb_value}"
21
+ rgb_array.join(',')
22
22
  end
23
23
 
24
24
  def rgba_array
25
- [random_rgb_value, random_rgb_value, random_rgb_value, random_opacity_value]
25
+ rgb_array << random_opacity_value
26
26
  end
27
27
 
28
28
  def rgba_list
29
- "#{random_rgb_value},#{random_rgb_value},#{random_rgb_value},#{random_opacity_value}"
29
+ rgba_array.join(',')
30
30
  end
31
31
 
32
32
  def hsl_array
@@ -34,15 +34,15 @@ module FFaker
34
34
  end
35
35
 
36
36
  def hsl_list
37
- "#{random_hue_value},#{random_percentage_string},#{random_percentage_string}"
37
+ hsl_array.join(',')
38
38
  end
39
39
 
40
40
  def hsla_array
41
- [random_hue_value, random_percentage_string, random_percentage_string, random_opacity_value]
41
+ hsl_array << random_opacity_value
42
42
  end
43
43
 
44
44
  def hsla_list
45
- "#{random_hue_value},#{random_percentage_string},#{random_percentage_string},#{random_opacity_value}"
45
+ hsla_array.join(',')
46
46
  end
47
47
 
48
48
  private