ffakerer 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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