ffakerer 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. checksums.yaml +15 -0
  2. data/Changelog.md +154 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +22 -0
  5. data/README.md +88 -0
  6. data/Rakefile +138 -0
  7. data/ffakerer.gemspec +266 -0
  8. data/lib/ffakerer.rb +31 -0
  9. data/lib/ffakerer/address.rb +99 -0
  10. data/lib/ffakerer/address_au.rb +106 -0
  11. data/lib/ffakerer/address_ca.rb +28 -0
  12. data/lib/ffakerer/address_da.rb +56 -0
  13. data/lib/ffakerer/address_de.rb +42 -0
  14. data/lib/ffakerer/address_mx.rb +505 -0
  15. data/lib/ffakerer/address_se.rb +48 -0
  16. data/lib/ffakerer/address_sn.rb +25 -0
  17. data/lib/ffakerer/address_uk.rb +27 -0
  18. data/lib/ffakerer/address_us.rb +30 -0
  19. data/lib/ffakerer/bacon_ipsum.rb +21 -0
  20. data/lib/ffakerer/company.rb +45 -0
  21. data/lib/ffakerer/company_se.rb +24 -0
  22. data/lib/ffakerer/conference.rb +12 -0
  23. data/lib/ffakerer/data/address/city_suffixes +19 -0
  24. data/lib/ffakerer/data/address/country +242 -0
  25. data/lib/ffakerer/data/address/neighborhood +49 -0
  26. data/lib/ffakerer/data/address/street_suffix +195 -0
  27. data/lib/ffakerer/data/address_ca/province +13 -0
  28. data/lib/ffakerer/data/address_da/city +592 -0
  29. data/lib/ffakerer/data/address_da/kommune +92 -0
  30. data/lib/ffakerer/data/address_da/street +657 -0
  31. data/lib/ffakerer/data/address_de/city +1666 -0
  32. data/lib/ffakerer/data/address_de/state +15 -0
  33. data/lib/ffakerer/data/address_mx/state +32 -0
  34. data/lib/ffakerer/data/address_mx/state_abbr +32 -0
  35. data/lib/ffakerer/data/address_se/city +154 -0
  36. data/lib/ffakerer/data/address_se/countries +250 -0
  37. data/lib/ffakerer/data/address_se/street +2887 -0
  38. data/lib/ffakerer/data/address_sn/arrondissements +47 -0
  39. data/lib/ffakerer/data/address_sn/departements +43 -0
  40. data/lib/ffakerer/data/address_sn/regions +14 -0
  41. data/lib/ffakerer/data/address_uk/uk_county +70 -0
  42. data/lib/ffakerer/data/address_us/state +50 -0
  43. data/lib/ffakerer/data/address_us/state_abbr +51 -0
  44. data/lib/ffakerer/data/address_us/state_and_territories_abbr +62 -0
  45. data/lib/ffakerer/data/bacon_ipsum/bacon_words +60 -0
  46. data/lib/ffakerer/data/company/bs_mid +65 -0
  47. data/lib/ffakerer/data/company/bs_pos +44 -0
  48. data/lib/ffakerer/data/company/bs_pre +60 -0
  49. data/lib/ffakerer/data/company/catch_mid +101 -0
  50. data/lib/ffakerer/data/company/catch_pos +104 -0
  51. data/lib/ffakerer/data/company/catch_pre +100 -0
  52. data/lib/ffakerer/data/company/position_areas +11 -0
  53. data/lib/ffakerer/data/conference/conference_list +40 -0
  54. data/lib/ffakerer/data/dizzle_ipsum/dizzle_words +69 -0
  55. data/lib/ffakerer/data/education/major_noun +13 -0
  56. data/lib/ffakerer/data/education/school_suffix +13 -0
  57. data/lib/ffakerer/data/healthcare_ipsum/healthcare_words +193 -0
  58. data/lib/ffakerer/data/hipster_ipsum/hipster_words +101 -0
  59. data/lib/ffakerer/data/job/job_adj +37 -0
  60. data/lib/ffakerer/data/job/job_noun +25 -0
  61. data/lib/ffakerer/data/job/job_prefix +22 -0
  62. data/lib/ffakerer/data/job_fr/job_nouns +14 -0
  63. data/lib/ffakerer/data/job_fr/job_prefixes +15 -0
  64. data/lib/ffakerer/data/lorem/characters +36 -0
  65. data/lib/ffakerer/data/lorem/words +249 -0
  66. data/lib/ffakerer/data/lorem_ar/words +911 -0
  67. data/lib/ffakerer/data/lorem_cn/words +706 -0
  68. data/lib/ffakerer/data/lorem_fr/words +10379 -0
  69. data/lib/ffakerer/data/movie/adj_and_adv +20 -0
  70. data/lib/ffakerer/data/movie/nouns +36 -0
  71. data/lib/ffakerer/data/movie/prefixes +17 -0
  72. data/lib/ffakerer/data/name/first_names +3008 -0
  73. data/lib/ffakerer/data/name/last_names +475 -0
  74. data/lib/ffakerer/data/name_cn/first_names +1000 -0
  75. data/lib/ffakerer/data/name_cn/last_names +1057 -0
  76. data/lib/ffakerer/data/name_cs/prefixes +16 -0
  77. data/lib/ffakerer/data/name_da/female_first_names +492 -0
  78. data/lib/ffakerer/data/name_da/last_names +187 -0
  79. data/lib/ffakerer/data/name_da/male_first_names +390 -0
  80. data/lib/ffakerer/data/name_de/first_names +1166 -0
  81. data/lib/ffakerer/data/name_de/last_names +100 -0
  82. data/lib/ffakerer/data/name_fr/first_names +220 -0
  83. data/lib/ffakerer/data/name_fr/last_names +408 -0
  84. data/lib/ffakerer/data/name_ga/first_names_female +225 -0
  85. data/lib/ffakerer/data/name_ga/first_names_male +306 -0
  86. data/lib/ffakerer/data/name_ja/first_names +397 -0
  87. data/lib/ffakerer/data/name_ja/last_names +1078 -0
  88. data/lib/ffakerer/data/name_kr/first_names +1317 -0
  89. data/lib/ffakerer/data/name_kr/last_names +197 -0
  90. data/lib/ffakerer/data/name_mx/female_first_names +216 -0
  91. data/lib/ffakerer/data/name_mx/last_names +352 -0
  92. data/lib/ffakerer/data/name_mx/male_first_names +211 -0
  93. data/lib/ffakerer/data/name_ph/autochthonous_surnames +217 -0
  94. data/lib/ffakerer/data/name_ph/spanish_surnames +300 -0
  95. data/lib/ffakerer/data/name_se/first_names_female +110 -0
  96. data/lib/ffakerer/data/name_se/first_names_male +110 -0
  97. data/lib/ffakerer/data/name_se/last_names +100 -0
  98. data/lib/ffakerer/data/name_sn/first_names_female +225 -0
  99. data/lib/ffakerer/data/name_sn/first_names_male +304 -0
  100. data/lib/ffakerer/data/name_sn/last_names +243 -0
  101. data/lib/ffakerer/data/name_vn/first_names +6 -0
  102. data/lib/ffakerer/data/name_vn/last_names +67 -0
  103. data/lib/ffakerer/data/name_vn/middle_names +89 -0
  104. data/lib/ffakerer/data/phone_number_se/phone_prefix +265 -0
  105. data/lib/ffakerer/data/product/adj +19 -0
  106. data/lib/ffakerer/data/product/b1 +19 -0
  107. data/lib/ffakerer/data/product/noun +16 -0
  108. data/lib/ffakerer/data/skill/specialty_end +14 -0
  109. data/lib/ffakerer/data/skill/specialty_start +18 -0
  110. data/lib/ffakerer/data/skill/tech_skills +52 -0
  111. data/lib/ffakerer/data/venue/venue_list +33 -0
  112. data/lib/ffakerer/dizzle_ipsum.rb +21 -0
  113. data/lib/ffakerer/education.rb +48 -0
  114. data/lib/ffakerer/geolocation.rb +50 -0
  115. data/lib/ffakerer/healthcare_ipsum.rb +20 -0
  116. data/lib/ffakerer/hipster_ipsum.rb +21 -0
  117. data/lib/ffakerer/html_ipsum.rb +160 -0
  118. data/lib/ffakerer/identification.rb +27 -0
  119. data/lib/ffakerer/identification_es.rb +15 -0
  120. data/lib/ffakerer/identification_es_cl.rb +26 -0
  121. data/lib/ffakerer/identification_es_co.rb +40 -0
  122. data/lib/ffakerer/internet.rb +72 -0
  123. data/lib/ffakerer/internet_se.rb +106 -0
  124. data/lib/ffakerer/job.rb +12 -0
  125. data/lib/ffakerer/job_fr.rb +14 -0
  126. data/lib/ffakerer/lorem.rb +44 -0
  127. data/lib/ffakerer/lorem_ar.rb +40 -0
  128. data/lib/ffakerer/lorem_cn.rb +41 -0
  129. data/lib/ffakerer/lorem_fr.rb +39 -0
  130. data/lib/ffakerer/movie.rb +63 -0
  131. data/lib/ffakerer/name.rb +35 -0
  132. data/lib/ffakerer/name_cn.rb +24 -0
  133. data/lib/ffakerer/name_cs.rb +90 -0
  134. data/lib/ffakerer/name_da.rb +68 -0
  135. data/lib/ffakerer/name_de.rb +33 -0
  136. data/lib/ffakerer/name_fr.rb +37 -0
  137. data/lib/ffakerer/name_ga.rb +47 -0
  138. data/lib/ffakerer/name_ja.rb +24 -0
  139. data/lib/ffakerer/name_kr.rb +24 -0
  140. data/lib/ffakerer/name_mx.rb +103 -0
  141. data/lib/ffakerer/name_ph.rb +29 -0
  142. data/lib/ffakerer/name_ru.rb +92 -0
  143. data/lib/ffakerer/name_se.rb +47 -0
  144. data/lib/ffakerer/name_sn.rb +65 -0
  145. data/lib/ffakerer/name_vn.rb +28 -0
  146. data/lib/ffakerer/phone_number.rb +34 -0
  147. data/lib/ffakerer/phone_number_au.rb +77 -0
  148. data/lib/ffakerer/phone_number_da.rb +45 -0
  149. data/lib/ffakerer/phone_number_de.rb +51 -0
  150. data/lib/ffakerer/phone_number_mx.rb +58 -0
  151. data/lib/ffakerer/phone_number_se.rb +90 -0
  152. data/lib/ffakerer/phone_number_sg.rb +81 -0
  153. data/lib/ffakerer/phone_number_sn.rb +78 -0
  154. data/lib/ffakerer/product.rb +45 -0
  155. data/lib/ffakerer/skill.rb +24 -0
  156. data/lib/ffakerer/ssn.rb +17 -0
  157. data/lib/ffakerer/ssn_se.rb +109 -0
  158. data/lib/ffakerer/string.rb +92 -0
  159. data/lib/ffakerer/time.rb +30 -0
  160. data/lib/ffakerer/unit.rb +50 -0
  161. data/lib/ffakerer/unit_english.rb +114 -0
  162. data/lib/ffakerer/unit_metric.rb +105 -0
  163. data/lib/ffakerer/utils/array_utils.rb +44 -0
  164. data/lib/ffakerer/utils/module_utils.rb +29 -0
  165. data/lib/ffakerer/venue.rb +12 -0
  166. data/scripts/benchmark.rb +21 -0
  167. data/scripts/profile.sh +2 -0
  168. data/scripts/profiling.rb +7 -0
  169. data/test/helper.rb +2 -0
  170. data/test/test_address.rb +73 -0
  171. data/test/test_address_au.rb +58 -0
  172. data/test/test_address_ca.rb +17 -0
  173. data/test/test_address_de.rb +25 -0
  174. data/test/test_address_mx.rb +26 -0
  175. data/test/test_address_se.rb +36 -0
  176. data/test/test_address_sn.rb +25 -0
  177. data/test/test_address_uk.rb +17 -0
  178. data/test/test_address_us.rb +25 -0
  179. data/test/test_array_utils.rb +52 -0
  180. data/test/test_bacon_ipsum.rb +30 -0
  181. data/test/test_company.rb +23 -0
  182. data/test/test_company_se.rb +14 -0
  183. data/test/test_conference.rb +10 -0
  184. data/test/test_dizzle_ipsum.rb +30 -0
  185. data/test/test_education.rb +34 -0
  186. data/test/test_faker.rb +30 -0
  187. data/test/test_faker_internet.rb +60 -0
  188. data/test/test_faker_internet_se.rb +67 -0
  189. data/test/test_faker_job.rb +14 -0
  190. data/test/test_faker_job_fr.rb +22 -0
  191. data/test/test_faker_name.rb +21 -0
  192. data/test/test_faker_name_cn.rb +13 -0
  193. data/test/test_faker_name_cs.rb +65 -0
  194. data/test/test_faker_name_de.rb +21 -0
  195. data/test/test_faker_name_fr.rb +48 -0
  196. data/test/test_faker_name_ga.rb +56 -0
  197. data/test/test_faker_name_ja.rb +13 -0
  198. data/test/test_faker_name_kr.rb +13 -0
  199. data/test/test_faker_name_mx.rb +180 -0
  200. data/test/test_faker_name_ph.rb +17 -0
  201. data/test/test_faker_name_ru.rb +80 -0
  202. data/test/test_faker_name_se.rb +38 -0
  203. data/test/test_faker_name_sn.rb +98 -0
  204. data/test/test_geolocation.rb +34 -0
  205. data/test/test_healthcare_ipsum.rb +27 -0
  206. data/test/test_hipster_ipsum.rb +29 -0
  207. data/test/test_html_ipsum.rb +91 -0
  208. data/test/test_identification.rb +27 -0
  209. data/test/test_identification_co.rb +38 -0
  210. data/test/test_identification_es.rb +13 -0
  211. data/test/test_identification_es_cl.rb +13 -0
  212. data/test/test_lorem.rb +44 -0
  213. data/test/test_lorem_ar.rb +37 -0
  214. data/test/test_lorem_cn.rb +47 -0
  215. data/test/test_lorem_fr.rb +37 -0
  216. data/test/test_module_utils.rb +14 -0
  217. data/test/test_movie.rb +9 -0
  218. data/test/test_phone_number.rb +13 -0
  219. data/test/test_phone_number_au.rb +50 -0
  220. data/test/test_phone_number_de.rb +46 -0
  221. data/test/test_phone_number_mx.rb +43 -0
  222. data/test/test_phone_number_se.rb +60 -0
  223. data/test/test_phone_number_sg.rb +44 -0
  224. data/test/test_phone_number_sn.rb +34 -0
  225. data/test/test_skill.rb +24 -0
  226. data/test/test_ssn.rb +11 -0
  227. data/test/test_ssn_se.rb +43 -0
  228. data/test/test_string.rb +71 -0
  229. data/test/test_time.rb +19 -0
  230. data/test/test_units.rb +32 -0
  231. data/test/test_units_english.rb +62 -0
  232. data/test/test_units_metric.rb +61 -0
  233. data/test/test_venue.rb +9 -0
  234. metadata +372 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NDE2MmFmNGY2NjdhOGZmMTEzMDQ0MWMwNDRkZTRiMGU0MjZjMTI3Mg==
5
+ data.tar.gz: !binary |-
6
+ ZDAzZjlmNGMxNGIwNmY5OTIzYzFmMDg2YWVlN2RjMzc2NjBiM2NmOA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZDdlNmNhOWEwMTIxYjQ0NjAyYjI5Yjg4NTc1MDE4NjNiNzQ4MzI5OTQwMDhj
10
+ NzM5OTIwNWQ5YzlkNDZkODAxYzk5MjdiNWQzNDE1MDc3YTAyNzkwY2U0MDQ2
11
+ MWZhNzkxMmExNTZhNGM1OGIzODZmNDNkMGRmZjBkY2I1NmY5ZDk=
12
+ data.tar.gz: !binary |-
13
+ MmM2ZWVjYTA1ZDYzNDJkZDY4NjAwMTZkMmJkODdlNTdiOTQ5MWJiZTQ1Yjg3
14
+ Yjc3MWFkMjZlNDM0ODYwMDM3YWFiMmVkOTNmZTQxNjU5ZGZkNmVlZWVkOWNj
15
+ MWY5NjRiMmY1Nzc5NzhhODhjZTgwMWJhMGM0ZDMzY2E4ZDViOWM=
data/Changelog.md ADDED
@@ -0,0 +1,154 @@
1
+ ## 1.22.1
2
+
3
+ Bugfixes
4
+
5
+ ## 1.22.0
6
+
7
+ Maintenance release, lots of cleanups.
8
+ New modules contributed.
9
+
10
+ ## 1.21.0
11
+
12
+ NameFR
13
+ Skill
14
+ Unit
15
+ UnitEnglish
16
+ UnitMetric
17
+
18
+ ## 1.20.0
19
+
20
+ JobFR
21
+ LoremFR
22
+
23
+ ## 1.19.0
24
+ More APIs
25
+
26
+ ## 1.16.2
27
+ Small bug fix and updated docs.
28
+
29
+ ## 1.16.1
30
+ Fixes for ruby 1.8.x
31
+
32
+ ## 1.16.0
33
+ Many module additions from different contributors!
34
+
35
+ ## 1.15.0
36
+ NameKR (https://github.com/EmmanuelOga/ffaker/pull/47) and PhoneNumbersSG
37
+ (https://github.com/EmmanuelOga/ffaker/pull/46).
38
+
39
+ ## 1.14.0
40
+
41
+ AddressSN (thanks PapePathe), and a bugfix on Faker::Product.model (thanks finarfin).
42
+
43
+ ## 1.13.0
44
+
45
+ Education bug fix, Faker::Job (thanks Piotr Usewicz)
46
+
47
+ ## 1.12.0
48
+
49
+ Faker::AddressAU and FakkerAddressPhoneAU modules (thanks Ben Wiseley).
50
+
51
+ ## 1.11.0
52
+
53
+ Extraction of AddressUK and AddressUS classes. (Thanks doctorbh).
54
+
55
+ ## 1.10.1
56
+
57
+ Faker::AddressCA (Thanks doctorbh, https://github.com/EmmanuelOga/ffaker/pull/27)
58
+
59
+ ## 1.9.1
60
+
61
+ Faker::NameSN, Faker::PhoneNumberSN (Thanks SENE, https://github.com/EmmanuelOga/ffaker/pull/26)
62
+
63
+ Added Faker::NameJA (Thanks kichiro, https://github.com/EmmanuelOga/ffaker/pull/21)
64
+
65
+ ## 1.8.1
66
+
67
+ Remove a warning.
68
+
69
+ ## 1.8.0
70
+
71
+ Faker::HTMLIpsum module inspired in http://html-ipsum.com/ (Thanks Chris Bloom, https://github.com/EmmanuelOga/ffaker/pull/18)
72
+
73
+ ## 1.7.0
74
+
75
+ Faker::LoremCN (Thanks Shane Weng, Shane Weng, https://github.com/swcool, https://github.com/EmmanuelOga/ffaker/pull/16/files)
76
+
77
+ ## 1.6.0
78
+
79
+ Faker::NameDE (thanks David Noelte, https://github.com/marvin, https://github.com/EmmanuelOga/ffaker/pull/17)
80
+ Added Faker::Internet#disposable_email (Thanks Port 80 Labs, https://github.com/port80labs, https://github.com/EmmanuelOga/ffaker/pull/15)
81
+
82
+ ## 1.5.0
83
+
84
+ Faker::NameRU (Thanks Vsevolod Romashov, https://github.com/7even, https://github.com/EmmanuelOga/ffaker/pull/14)
85
+
86
+ ## 1.4.0
87
+
88
+ Faker::Product and Faker::Education (thanks Rico Sta. Cruz, https://github.com/EmmanuelOga/ffaker/pull/12 )
89
+
90
+ ## 1.3.0
91
+
92
+ Faker::Lorem.word as a convenience method, instead of Faker::Lorem.words(1).first.
93
+
94
+ ## 1.2.0
95
+
96
+ New Faker::NameCN module (contributions by qichunren)
97
+
98
+ Faker::NameCN.first_name # => 鑫洋
99
+ Faker::NameCN.last_name # => 禹
100
+ Faker::NameCN.name # => 俊伶漫
101
+
102
+ ## 1.1.0
103
+
104
+ Api additions (contributions by Robert Berry)
105
+
106
+ Faker::Internet.uri(protocol)
107
+ Faker::Internet.http_url
108
+ Faker::Internet.ip_v4_address
109
+
110
+ ## 0.4.0
111
+
112
+ Api additions by Rafael Souza
113
+
114
+ Faker::Geolocation.lat # => 40.6609944585817
115
+ Faker::Geolocation.lng # => -73.8454648940358
116
+ Faker::Address.neighborhood # => "Renton West"
117
+
118
+
119
+ ## 0.3.3 2010-01-14
120
+
121
+ * removed library file and directory "faker". now you only can load the gem using require 'ffaker'
122
+
123
+ ## 0.3.2 2010-01-14
124
+
125
+ * Several Optimizations, renamed gem packege to ffaker.
126
+
127
+ ## 0.3.1 2008-04-03
128
+
129
+ 1 minor enhancement:
130
+
131
+ * Added city to Address
132
+
133
+ ## 0.3.0 2008-01-01
134
+
135
+ 3 major enhancements:
136
+
137
+ * Added Lorem to generate fake Latin
138
+ * Added secondary_address to Address, and made inclusion of secondary address in street_address optional (false by default).
139
+ * Added UK address methods [Caius Durling]
140
+
141
+ ## 0.2.1 2007-12-05
142
+
143
+ 1 major enhancement:
144
+
145
+ * Dropped facets to avoid conflict with ActiveSupport
146
+
147
+ 2 minor enhancements:
148
+
149
+ * Changed the output of user_name to randomly separate with a . or _
150
+ * Added a few tests
151
+
152
+ ## 0.1.0 2007-11-22
153
+
154
+ * Initial release
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'http://rubygems.org'
2
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Luke Inglis
2
+ Copyright (c) 2013 Emmanuel Oga
3
+ Copyright (c) 2007 Benjamin Curtis
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # ffaker
2
+
3
+ [ffakerer](http://rubygems.org/gems/ffakerer) is based on [ffaker](http://rubygems.org/gems/ffaker) which is a rewrite of [faker](http://rubygems.org/gems/faker).
4
+
5
+ ## Usage
6
+
7
+ ```ruby
8
+ require 'ffaker'
9
+ Faker::Name.name => "Christophe Bartell"
10
+ Faker::Internet.email => "kirsten.greenholt@corkeryfisher.info"
11
+ ```
12
+
13
+ ## ffakerer vs. ffaker vs faker
14
+
15
+ "The faker and ffaker APIs are mostly the same..." that _mostly_ the same is where ffakerer comes in.
16
+ The goal of ffakerer is to provide the speed boost of ffaker while providing a parallel API to faker.
17
+ With ffakerer you get all the efficiency benefits of ffaker in a truly 'drop in' replacement for faker.
18
+
19
+ ## From here on out this README is basically Emmanuel's
20
+
21
+ ## ffaker is faster... does it really matter?
22
+
23
+ ffaker was initially written in an effort to speed up a slow spec suite. Bear
24
+ in mind, if your spec suite is slow, chances are the generation of random data
25
+ will not account for much of the run time.
26
+
27
+ Since then, the original faker gem has become faster.
28
+ Nevertheless, ffaker is still about 20x faster than faker.
29
+
30
+ ```ruby
31
+ N = 10_000
32
+
33
+ Benchmark.bm do |rep|
34
+ rep.report("generating #{ N } names") do
35
+ N.times do
36
+ Faker::Name.name
37
+ end
38
+ end
39
+ end
40
+ ```
41
+
42
+ ```
43
+ ruby 1.8.7
44
+ generating 10000 names (faker 0.9.5) 1.500000 0.000000 1.500000 ( 1.506865)
45
+ generating 10000 names (ffaker 1.5.0) 0.070000 0.000000 0.070000 ( 0.067526)
46
+
47
+ ruby 1.9.2p180
48
+ generating 10000 names (faker 0.9.5) 1.030000 0.020000 1.050000 ( 1.046116)
49
+ generating 10000 names (ffaker 1.7.0) 0.040000 0.000000 0.040000 ( 0.045917)
50
+ ```
51
+
52
+ ## Contributors
53
+
54
+ If you want to add new modules or localization data, use one of the
55
+ [directories for data files](https://github.com/EmmanuelOga/ffaker/tree/master/lib/ffaker/data)
56
+ (or create a new one!).
57
+
58
+ **const_missing** is
59
+ [overriden](https://github.com/EmmanuelOga/ffaker/blob/master/lib/ffaker/utils/module_utils.rb#L9)
60
+ for Faker modules, so if you try to use a constant that is not defined
61
+ in the module, the
62
+ [override](https://github.com/EmmanuelOga/ffaker/blob/master/lib/ffaker/utils/module_utils.rb#L9)
63
+ will look for a data file matching the name of the constant. E.G.: the
64
+ first time someone accesses ++Faker::Name::FIRST_NAMES++, a const of that
65
+ name will be set with data from ffaker/data/name/first_names.
66
+
67
+ ## TODO
68
+
69
+ * Even though the API is pretty simple, better rdoc documentation would not hurt.
70
+ * Put all modules under their respective languages (E.G. EducationUS instead of just Education)
71
+
72
+ ## Note on Patches/Pull Requests
73
+
74
+ * Fork the project.
75
+ * Make your feature addition or bug fix.
76
+ * Add tests for it. This is important so I don't break it in a
77
+ future version unintentionally.
78
+ * Commit, do not mess with rakefile, version, or history.
79
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
80
+ * Send me a pull request. Bonus points for topic branches.
81
+
82
+ ## Copyright
83
+
84
+ Copyright (c) 2013 Luke Inglis See LICENSE for details.
85
+
86
+ Copyright (c) 2013 Emmanuel Oga
87
+
88
+ Copyright (c) 2007 Benjamin Curtis
data/Rakefile ADDED
@@ -0,0 +1,138 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'date'
4
+
5
+ #############################################################################
6
+ #
7
+ # Helper functions
8
+ #
9
+ #############################################################################
10
+
11
+ def name
12
+ @name ||= Dir['*.gemspec'].first.split('.').first
13
+ end
14
+
15
+ def version
16
+ line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
17
+ line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
18
+ end
19
+
20
+ def date
21
+ Date.today.to_s
22
+ end
23
+
24
+ def rubyforge_project
25
+ name
26
+ end
27
+
28
+ def gemspec_file
29
+ "#{name}.gemspec"
30
+ end
31
+
32
+ def gem_file
33
+ "#{name}-#{version}.gem"
34
+ end
35
+
36
+ def replace_header(head, header_name)
37
+ head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
38
+ end
39
+
40
+ #############################################################################
41
+ #
42
+ # Standard tasks
43
+ #
44
+ #############################################################################
45
+
46
+ require 'rake/testtask'
47
+ Rake::TestTask.new do |t|
48
+ t.libs << "test/" << "lib/"
49
+ t.ruby_opts << "-rhelper"
50
+ t.test_files = FileList['test/test*.rb']
51
+ t.verbose = true
52
+ end
53
+
54
+ task :default => :test
55
+
56
+ desc "Open an irb session preloaded with this library"
57
+ task :console do
58
+ sh "irb -I ./lib/ -rubygems -r ./lib/#{name}.rb"
59
+ end
60
+
61
+ #############################################################################
62
+ #
63
+ # Custom tasks (add your own tasks here)
64
+ #
65
+ #############################################################################
66
+
67
+ begin
68
+ require 'yard'
69
+ YARD::Rake::YardocTask.new
70
+ rescue LoadError
71
+ task :yardoc do
72
+ abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
73
+ end
74
+ end
75
+
76
+ #############################################################################
77
+ #
78
+ # Packaging tasks
79
+ #
80
+ #############################################################################
81
+
82
+ task :release => :build do
83
+ unless `git branch` =~ /^\* master$/
84
+ puts "You must be on the master branch to release!"
85
+ exit!
86
+ end
87
+ sh "git commit --allow-empty -a -m 'Release #{version}'"
88
+ sh "git tag v#{version}"
89
+ sh "git push origin master"
90
+ sh "git push --tags"
91
+ sh "gem push pkg/#{name}-#{version}.gem"
92
+ end
93
+
94
+ task :build => :gemspec do
95
+ sh "mkdir -p pkg"
96
+ sh "gem build #{gemspec_file}"
97
+ sh "mv #{gem_file} pkg"
98
+ end
99
+
100
+ task :gemspec => :validate do
101
+ # read spec file and split out manifest section
102
+ spec = File.read(gemspec_file)
103
+ head, manifest, tail = spec.split(" # = MANIFEST =\n")
104
+
105
+ # replace name version and date
106
+ replace_header(head, :name)
107
+ replace_header(head, :version)
108
+ replace_header(head, :date)
109
+ #comment this out if your rubyforge_project has a different name
110
+ replace_header(head, :rubyforge_project)
111
+
112
+ # determine file list from git ls-files
113
+ files = `git ls-files`.
114
+ split("\n").
115
+ sort.
116
+ reject { |file| file =~ /^\./ }.
117
+ reject { |file| file =~ /^(rdoc|pkg)/ }.
118
+ map { |file| " #{file}" }.
119
+ join("\n")
120
+
121
+ # piece file back together and write
122
+ manifest = " s.files = %w[\n#{files}\n ]\n"
123
+ spec = [head, manifest, tail].join(" # = MANIFEST =\n")
124
+ File.open(gemspec_file, 'w') { |io| io.write(spec) }
125
+ puts "Updated #{gemspec_file}"
126
+ end
127
+
128
+ task :validate do
129
+ libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
130
+ unless libfiles.empty?
131
+ puts "Directory `lib` should only contain a `#{name}.rb` file and `#{name}` dir."
132
+ exit!
133
+ end
134
+ unless Dir['VERSION*'].empty?
135
+ puts "A `VERSION` file at root level violates Gem best practices."
136
+ exit!
137
+ end
138
+ end
data/ffakerer.gemspec ADDED
@@ -0,0 +1,266 @@
1
+ Gem::Specification.new do |s|
2
+ s.specification_version = 2 if s.respond_to? :specification_version=
3
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
4
+ s.rubygems_version = '1.3.5'
5
+
6
+ s.name = 'ffakerer'
7
+ s.version = '1.0.1'
8
+ s.date = '2013-12-28'
9
+ s.rubyforge_project = 'ffakerer'
10
+
11
+ s.license = 'MIT'
12
+
13
+ s.summary = "Another Faster Faker, generates dummy data."
14
+ s.description = "Builting out from Emmanuel Oga's ffaker ffakerer aims to preserve the speed boost of ffaker while paralleling the API of faker more closely."
15
+
16
+ s.authors = ["Luke Inglis"]
17
+ s.email = 'ld.inglis@gmail.com'
18
+ s.homepage = 'http://github.com/ludamillion/ffakerer'
19
+
20
+ s.require_paths = %w[lib]
21
+
22
+ s.rdoc_options = ["--charset=UTF-8"]
23
+ s.extra_rdoc_files = %w[README.md LICENSE Changelog.md]
24
+
25
+ # = MANIFEST =
26
+ s.files = %w[
27
+ Changelog.md
28
+ Gemfile
29
+ LICENSE
30
+ README.md
31
+ Rakefile
32
+ ffakerer.gemspec
33
+ lib/ffakerer.rb
34
+ lib/ffakerer/address.rb
35
+ lib/ffakerer/address_au.rb
36
+ lib/ffakerer/address_ca.rb
37
+ lib/ffakerer/address_da.rb
38
+ lib/ffakerer/address_de.rb
39
+ lib/ffakerer/address_mx.rb
40
+ lib/ffakerer/address_se.rb
41
+ lib/ffakerer/address_sn.rb
42
+ lib/ffakerer/address_uk.rb
43
+ lib/ffakerer/address_us.rb
44
+ lib/ffakerer/bacon_ipsum.rb
45
+ lib/ffakerer/company.rb
46
+ lib/ffakerer/company_se.rb
47
+ lib/ffakerer/conference.rb
48
+ lib/ffakerer/data/address/city_suffixes
49
+ lib/ffakerer/data/address/country
50
+ lib/ffakerer/data/address/neighborhood
51
+ lib/ffakerer/data/address/street_suffix
52
+ lib/ffakerer/data/address_ca/province
53
+ lib/ffakerer/data/address_da/city
54
+ lib/ffakerer/data/address_da/kommune
55
+ lib/ffakerer/data/address_da/street
56
+ lib/ffakerer/data/address_de/city
57
+ lib/ffakerer/data/address_de/state
58
+ lib/ffakerer/data/address_mx/state
59
+ lib/ffakerer/data/address_mx/state_abbr
60
+ lib/ffakerer/data/address_se/city
61
+ lib/ffakerer/data/address_se/countries
62
+ lib/ffakerer/data/address_se/street
63
+ lib/ffakerer/data/address_sn/arrondissements
64
+ lib/ffakerer/data/address_sn/departements
65
+ lib/ffakerer/data/address_sn/regions
66
+ lib/ffakerer/data/address_uk/uk_county
67
+ lib/ffakerer/data/address_us/state
68
+ lib/ffakerer/data/address_us/state_abbr
69
+ lib/ffakerer/data/address_us/state_and_territories_abbr
70
+ lib/ffakerer/data/bacon_ipsum/bacon_words
71
+ lib/ffakerer/data/company/bs_mid
72
+ lib/ffakerer/data/company/bs_pos
73
+ lib/ffakerer/data/company/bs_pre
74
+ lib/ffakerer/data/company/catch_mid
75
+ lib/ffakerer/data/company/catch_pos
76
+ lib/ffakerer/data/company/catch_pre
77
+ lib/ffakerer/data/company/position_areas
78
+ lib/ffakerer/data/conference/conference_list
79
+ lib/ffakerer/data/dizzle_ipsum/dizzle_words
80
+ lib/ffakerer/data/education/major_noun
81
+ lib/ffakerer/data/education/school_suffix
82
+ lib/ffakerer/data/healthcare_ipsum/healthcare_words
83
+ lib/ffakerer/data/hipster_ipsum/hipster_words
84
+ lib/ffakerer/data/job/job_adj
85
+ lib/ffakerer/data/job/job_noun
86
+ lib/ffakerer/data/job/job_prefix
87
+ lib/ffakerer/data/job_fr/job_nouns
88
+ lib/ffakerer/data/job_fr/job_prefixes
89
+ lib/ffakerer/data/lorem/words
90
+ lib/ffakerer/data/lorem/characters
91
+ lib/ffakerer/data/lorem_ar/words
92
+ lib/ffakerer/data/lorem_cn/words
93
+ lib/ffakerer/data/lorem_fr/words
94
+ lib/ffakerer/data/movie/adj_and_adv
95
+ lib/ffakerer/data/movie/nouns
96
+ lib/ffakerer/data/movie/prefixes
97
+ lib/ffakerer/data/name/first_names
98
+ lib/ffakerer/data/name/last_names
99
+ lib/ffakerer/data/name_cn/first_names
100
+ lib/ffakerer/data/name_cn/last_names
101
+ lib/ffakerer/data/name_cs/prefixes
102
+ lib/ffakerer/data/name_da/female_first_names
103
+ lib/ffakerer/data/name_da/last_names
104
+ lib/ffakerer/data/name_da/male_first_names
105
+ lib/ffakerer/data/name_de/first_names
106
+ lib/ffakerer/data/name_de/last_names
107
+ lib/ffakerer/data/name_fr/first_names
108
+ lib/ffakerer/data/name_fr/last_names
109
+ lib/ffakerer/data/name_ga/first_names_female
110
+ lib/ffakerer/data/name_ga/first_names_male
111
+ lib/ffakerer/data/name_ja/first_names
112
+ lib/ffakerer/data/name_ja/last_names
113
+ lib/ffakerer/data/name_kr/first_names
114
+ lib/ffakerer/data/name_kr/last_names
115
+ lib/ffakerer/data/name_mx/female_first_names
116
+ lib/ffakerer/data/name_mx/last_names
117
+ lib/ffakerer/data/name_mx/male_first_names
118
+ lib/ffakerer/data/name_ph/autochthonous_surnames
119
+ lib/ffakerer/data/name_ph/spanish_surnames
120
+ lib/ffakerer/data/name_se/first_names_female
121
+ lib/ffakerer/data/name_se/first_names_male
122
+ lib/ffakerer/data/name_se/last_names
123
+ lib/ffakerer/data/name_sn/first_names_female
124
+ lib/ffakerer/data/name_sn/first_names_male
125
+ lib/ffakerer/data/name_sn/last_names
126
+ lib/ffakerer/data/name_vn/first_names
127
+ lib/ffakerer/data/name_vn/last_names
128
+ lib/ffakerer/data/name_vn/middle_names
129
+ lib/ffakerer/data/phone_number_se/phone_prefix
130
+ lib/ffakerer/data/product/adj
131
+ lib/ffakerer/data/product/b1
132
+ lib/ffakerer/data/product/noun
133
+ lib/ffakerer/data/skill/specialty_end
134
+ lib/ffakerer/data/skill/specialty_start
135
+ lib/ffakerer/data/skill/tech_skills
136
+ lib/ffakerer/data/venue/venue_list
137
+ lib/ffakerer/dizzle_ipsum.rb
138
+ lib/ffakerer/education.rb
139
+ lib/ffakerer/geolocation.rb
140
+ lib/ffakerer/healthcare_ipsum.rb
141
+ lib/ffakerer/hipster_ipsum.rb
142
+ lib/ffakerer/html_ipsum.rb
143
+ lib/ffakerer/identification.rb
144
+ lib/ffakerer/identification_es.rb
145
+ lib/ffakerer/identification_es_cl.rb
146
+ lib/ffakerer/identification_es_co.rb
147
+ lib/ffakerer/internet.rb
148
+ lib/ffakerer/internet_se.rb
149
+ lib/ffakerer/job.rb
150
+ lib/ffakerer/job_fr.rb
151
+ lib/ffakerer/lorem.rb
152
+ lib/ffakerer/lorem_ar.rb
153
+ lib/ffakerer/lorem_cn.rb
154
+ lib/ffakerer/lorem_fr.rb
155
+ lib/ffakerer/movie.rb
156
+ lib/ffakerer/name.rb
157
+ lib/ffakerer/name_cn.rb
158
+ lib/ffakerer/name_cs.rb
159
+ lib/ffakerer/name_da.rb
160
+ lib/ffakerer/name_de.rb
161
+ lib/ffakerer/name_fr.rb
162
+ lib/ffakerer/name_ga.rb
163
+ lib/ffakerer/name_ja.rb
164
+ lib/ffakerer/name_kr.rb
165
+ lib/ffakerer/name_mx.rb
166
+ lib/ffakerer/name_ph.rb
167
+ lib/ffakerer/name_ru.rb
168
+ lib/ffakerer/name_se.rb
169
+ lib/ffakerer/name_sn.rb
170
+ lib/ffakerer/name_vn.rb
171
+ lib/ffakerer/phone_number.rb
172
+ lib/ffakerer/phone_number_au.rb
173
+ lib/ffakerer/phone_number_da.rb
174
+ lib/ffakerer/phone_number_de.rb
175
+ lib/ffakerer/phone_number_mx.rb
176
+ lib/ffakerer/phone_number_se.rb
177
+ lib/ffakerer/phone_number_sg.rb
178
+ lib/ffakerer/phone_number_sn.rb
179
+ lib/ffakerer/product.rb
180
+ lib/ffakerer/skill.rb
181
+ lib/ffakerer/ssn.rb
182
+ lib/ffakerer/ssn_se.rb
183
+ lib/ffakerer/string.rb
184
+ lib/ffakerer/time.rb
185
+ lib/ffakerer/unit.rb
186
+ lib/ffakerer/unit_english.rb
187
+ lib/ffakerer/unit_metric.rb
188
+ lib/ffakerer/utils/array_utils.rb
189
+ lib/ffakerer/utils/module_utils.rb
190
+ lib/ffakerer/venue.rb
191
+ scripts/benchmark.rb
192
+ scripts/profile.sh
193
+ scripts/profiling.rb
194
+ test/helper.rb
195
+ test/test_address.rb
196
+ test/test_address_au.rb
197
+ test/test_address_ca.rb
198
+ test/test_address_de.rb
199
+ test/test_address_mx.rb
200
+ test/test_address_se.rb
201
+ test/test_address_sn.rb
202
+ test/test_address_uk.rb
203
+ test/test_address_us.rb
204
+ test/test_array_utils.rb
205
+ test/test_bacon_ipsum.rb
206
+ test/test_company.rb
207
+ test/test_company_se.rb
208
+ test/test_conference.rb
209
+ test/test_dizzle_ipsum.rb
210
+ test/test_education.rb
211
+ test/test_faker.rb
212
+ test/test_faker_internet.rb
213
+ test/test_faker_internet_se.rb
214
+ test/test_faker_job.rb
215
+ test/test_faker_job_fr.rb
216
+ test/test_faker_name.rb
217
+ test/test_faker_name_cn.rb
218
+ test/test_faker_name_cs.rb
219
+ test/test_faker_name_de.rb
220
+ test/test_faker_name_fr.rb
221
+ test/test_faker_name_ga.rb
222
+ test/test_faker_name_ja.rb
223
+ test/test_faker_name_kr.rb
224
+ test/test_faker_name_mx.rb
225
+ test/test_faker_name_ph.rb
226
+ test/test_faker_name_ru.rb
227
+ test/test_faker_name_se.rb
228
+ test/test_faker_name_sn.rb
229
+ test/test_geolocation.rb
230
+ test/test_healthcare_ipsum.rb
231
+ test/test_hipster_ipsum.rb
232
+ test/test_html_ipsum.rb
233
+ test/test_identification.rb
234
+ test/test_identification_co.rb
235
+ test/test_identification_es.rb
236
+ test/test_identification_es_cl.rb
237
+ test/test_lorem.rb
238
+ test/test_lorem_ar.rb
239
+ test/test_lorem_cn.rb
240
+ test/test_lorem_fr.rb
241
+ test/test_module_utils.rb
242
+ test/test_movie.rb
243
+ test/test_phone_number.rb
244
+ test/test_phone_number_au.rb
245
+ test/test_phone_number_de.rb
246
+ test/test_phone_number_mx.rb
247
+ test/test_phone_number_se.rb
248
+ test/test_phone_number_sg.rb
249
+ test/test_phone_number_sn.rb
250
+ test/test_skill.rb
251
+ test/test_ssn.rb
252
+ test/test_ssn_se.rb
253
+ test/test_string.rb
254
+ test/test_time.rb
255
+ test/test_units.rb
256
+ test/test_units_english.rb
257
+ test/test_units_metric.rb
258
+ test/test_venue.rb
259
+ ]
260
+ # = MANIFEST =
261
+
262
+ s.test_files = s.files.select { |path| path =~ /^test\/test_.*\.rb/ }
263
+
264
+ s.add_development_dependency 'rake'
265
+ s.add_development_dependency 'test-unit'
266
+ end