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.
- checksums.yaml +15 -0
- data/Changelog.md +154 -0
- data/Gemfile +2 -0
- data/LICENSE +22 -0
- data/README.md +88 -0
- data/Rakefile +138 -0
- data/ffakerer.gemspec +266 -0
- data/lib/ffakerer.rb +31 -0
- data/lib/ffakerer/address.rb +99 -0
- data/lib/ffakerer/address_au.rb +106 -0
- data/lib/ffakerer/address_ca.rb +28 -0
- data/lib/ffakerer/address_da.rb +56 -0
- data/lib/ffakerer/address_de.rb +42 -0
- data/lib/ffakerer/address_mx.rb +505 -0
- data/lib/ffakerer/address_se.rb +48 -0
- data/lib/ffakerer/address_sn.rb +25 -0
- data/lib/ffakerer/address_uk.rb +27 -0
- data/lib/ffakerer/address_us.rb +30 -0
- data/lib/ffakerer/bacon_ipsum.rb +21 -0
- data/lib/ffakerer/company.rb +45 -0
- data/lib/ffakerer/company_se.rb +24 -0
- data/lib/ffakerer/conference.rb +12 -0
- data/lib/ffakerer/data/address/city_suffixes +19 -0
- data/lib/ffakerer/data/address/country +242 -0
- data/lib/ffakerer/data/address/neighborhood +49 -0
- data/lib/ffakerer/data/address/street_suffix +195 -0
- data/lib/ffakerer/data/address_ca/province +13 -0
- data/lib/ffakerer/data/address_da/city +592 -0
- data/lib/ffakerer/data/address_da/kommune +92 -0
- data/lib/ffakerer/data/address_da/street +657 -0
- data/lib/ffakerer/data/address_de/city +1666 -0
- data/lib/ffakerer/data/address_de/state +15 -0
- data/lib/ffakerer/data/address_mx/state +32 -0
- data/lib/ffakerer/data/address_mx/state_abbr +32 -0
- data/lib/ffakerer/data/address_se/city +154 -0
- data/lib/ffakerer/data/address_se/countries +250 -0
- data/lib/ffakerer/data/address_se/street +2887 -0
- data/lib/ffakerer/data/address_sn/arrondissements +47 -0
- data/lib/ffakerer/data/address_sn/departements +43 -0
- data/lib/ffakerer/data/address_sn/regions +14 -0
- data/lib/ffakerer/data/address_uk/uk_county +70 -0
- data/lib/ffakerer/data/address_us/state +50 -0
- data/lib/ffakerer/data/address_us/state_abbr +51 -0
- data/lib/ffakerer/data/address_us/state_and_territories_abbr +62 -0
- data/lib/ffakerer/data/bacon_ipsum/bacon_words +60 -0
- data/lib/ffakerer/data/company/bs_mid +65 -0
- data/lib/ffakerer/data/company/bs_pos +44 -0
- data/lib/ffakerer/data/company/bs_pre +60 -0
- data/lib/ffakerer/data/company/catch_mid +101 -0
- data/lib/ffakerer/data/company/catch_pos +104 -0
- data/lib/ffakerer/data/company/catch_pre +100 -0
- data/lib/ffakerer/data/company/position_areas +11 -0
- data/lib/ffakerer/data/conference/conference_list +40 -0
- data/lib/ffakerer/data/dizzle_ipsum/dizzle_words +69 -0
- data/lib/ffakerer/data/education/major_noun +13 -0
- data/lib/ffakerer/data/education/school_suffix +13 -0
- data/lib/ffakerer/data/healthcare_ipsum/healthcare_words +193 -0
- data/lib/ffakerer/data/hipster_ipsum/hipster_words +101 -0
- data/lib/ffakerer/data/job/job_adj +37 -0
- data/lib/ffakerer/data/job/job_noun +25 -0
- data/lib/ffakerer/data/job/job_prefix +22 -0
- data/lib/ffakerer/data/job_fr/job_nouns +14 -0
- data/lib/ffakerer/data/job_fr/job_prefixes +15 -0
- data/lib/ffakerer/data/lorem/characters +36 -0
- data/lib/ffakerer/data/lorem/words +249 -0
- data/lib/ffakerer/data/lorem_ar/words +911 -0
- data/lib/ffakerer/data/lorem_cn/words +706 -0
- data/lib/ffakerer/data/lorem_fr/words +10379 -0
- data/lib/ffakerer/data/movie/adj_and_adv +20 -0
- data/lib/ffakerer/data/movie/nouns +36 -0
- data/lib/ffakerer/data/movie/prefixes +17 -0
- data/lib/ffakerer/data/name/first_names +3008 -0
- data/lib/ffakerer/data/name/last_names +475 -0
- data/lib/ffakerer/data/name_cn/first_names +1000 -0
- data/lib/ffakerer/data/name_cn/last_names +1057 -0
- data/lib/ffakerer/data/name_cs/prefixes +16 -0
- data/lib/ffakerer/data/name_da/female_first_names +492 -0
- data/lib/ffakerer/data/name_da/last_names +187 -0
- data/lib/ffakerer/data/name_da/male_first_names +390 -0
- data/lib/ffakerer/data/name_de/first_names +1166 -0
- data/lib/ffakerer/data/name_de/last_names +100 -0
- data/lib/ffakerer/data/name_fr/first_names +220 -0
- data/lib/ffakerer/data/name_fr/last_names +408 -0
- data/lib/ffakerer/data/name_ga/first_names_female +225 -0
- data/lib/ffakerer/data/name_ga/first_names_male +306 -0
- data/lib/ffakerer/data/name_ja/first_names +397 -0
- data/lib/ffakerer/data/name_ja/last_names +1078 -0
- data/lib/ffakerer/data/name_kr/first_names +1317 -0
- data/lib/ffakerer/data/name_kr/last_names +197 -0
- data/lib/ffakerer/data/name_mx/female_first_names +216 -0
- data/lib/ffakerer/data/name_mx/last_names +352 -0
- data/lib/ffakerer/data/name_mx/male_first_names +211 -0
- data/lib/ffakerer/data/name_ph/autochthonous_surnames +217 -0
- data/lib/ffakerer/data/name_ph/spanish_surnames +300 -0
- data/lib/ffakerer/data/name_se/first_names_female +110 -0
- data/lib/ffakerer/data/name_se/first_names_male +110 -0
- data/lib/ffakerer/data/name_se/last_names +100 -0
- data/lib/ffakerer/data/name_sn/first_names_female +225 -0
- data/lib/ffakerer/data/name_sn/first_names_male +304 -0
- data/lib/ffakerer/data/name_sn/last_names +243 -0
- data/lib/ffakerer/data/name_vn/first_names +6 -0
- data/lib/ffakerer/data/name_vn/last_names +67 -0
- data/lib/ffakerer/data/name_vn/middle_names +89 -0
- data/lib/ffakerer/data/phone_number_se/phone_prefix +265 -0
- data/lib/ffakerer/data/product/adj +19 -0
- data/lib/ffakerer/data/product/b1 +19 -0
- data/lib/ffakerer/data/product/noun +16 -0
- data/lib/ffakerer/data/skill/specialty_end +14 -0
- data/lib/ffakerer/data/skill/specialty_start +18 -0
- data/lib/ffakerer/data/skill/tech_skills +52 -0
- data/lib/ffakerer/data/venue/venue_list +33 -0
- data/lib/ffakerer/dizzle_ipsum.rb +21 -0
- data/lib/ffakerer/education.rb +48 -0
- data/lib/ffakerer/geolocation.rb +50 -0
- data/lib/ffakerer/healthcare_ipsum.rb +20 -0
- data/lib/ffakerer/hipster_ipsum.rb +21 -0
- data/lib/ffakerer/html_ipsum.rb +160 -0
- data/lib/ffakerer/identification.rb +27 -0
- data/lib/ffakerer/identification_es.rb +15 -0
- data/lib/ffakerer/identification_es_cl.rb +26 -0
- data/lib/ffakerer/identification_es_co.rb +40 -0
- data/lib/ffakerer/internet.rb +72 -0
- data/lib/ffakerer/internet_se.rb +106 -0
- data/lib/ffakerer/job.rb +12 -0
- data/lib/ffakerer/job_fr.rb +14 -0
- data/lib/ffakerer/lorem.rb +44 -0
- data/lib/ffakerer/lorem_ar.rb +40 -0
- data/lib/ffakerer/lorem_cn.rb +41 -0
- data/lib/ffakerer/lorem_fr.rb +39 -0
- data/lib/ffakerer/movie.rb +63 -0
- data/lib/ffakerer/name.rb +35 -0
- data/lib/ffakerer/name_cn.rb +24 -0
- data/lib/ffakerer/name_cs.rb +90 -0
- data/lib/ffakerer/name_da.rb +68 -0
- data/lib/ffakerer/name_de.rb +33 -0
- data/lib/ffakerer/name_fr.rb +37 -0
- data/lib/ffakerer/name_ga.rb +47 -0
- data/lib/ffakerer/name_ja.rb +24 -0
- data/lib/ffakerer/name_kr.rb +24 -0
- data/lib/ffakerer/name_mx.rb +103 -0
- data/lib/ffakerer/name_ph.rb +29 -0
- data/lib/ffakerer/name_ru.rb +92 -0
- data/lib/ffakerer/name_se.rb +47 -0
- data/lib/ffakerer/name_sn.rb +65 -0
- data/lib/ffakerer/name_vn.rb +28 -0
- data/lib/ffakerer/phone_number.rb +34 -0
- data/lib/ffakerer/phone_number_au.rb +77 -0
- data/lib/ffakerer/phone_number_da.rb +45 -0
- data/lib/ffakerer/phone_number_de.rb +51 -0
- data/lib/ffakerer/phone_number_mx.rb +58 -0
- data/lib/ffakerer/phone_number_se.rb +90 -0
- data/lib/ffakerer/phone_number_sg.rb +81 -0
- data/lib/ffakerer/phone_number_sn.rb +78 -0
- data/lib/ffakerer/product.rb +45 -0
- data/lib/ffakerer/skill.rb +24 -0
- data/lib/ffakerer/ssn.rb +17 -0
- data/lib/ffakerer/ssn_se.rb +109 -0
- data/lib/ffakerer/string.rb +92 -0
- data/lib/ffakerer/time.rb +30 -0
- data/lib/ffakerer/unit.rb +50 -0
- data/lib/ffakerer/unit_english.rb +114 -0
- data/lib/ffakerer/unit_metric.rb +105 -0
- data/lib/ffakerer/utils/array_utils.rb +44 -0
- data/lib/ffakerer/utils/module_utils.rb +29 -0
- data/lib/ffakerer/venue.rb +12 -0
- data/scripts/benchmark.rb +21 -0
- data/scripts/profile.sh +2 -0
- data/scripts/profiling.rb +7 -0
- data/test/helper.rb +2 -0
- data/test/test_address.rb +73 -0
- data/test/test_address_au.rb +58 -0
- data/test/test_address_ca.rb +17 -0
- data/test/test_address_de.rb +25 -0
- data/test/test_address_mx.rb +26 -0
- data/test/test_address_se.rb +36 -0
- data/test/test_address_sn.rb +25 -0
- data/test/test_address_uk.rb +17 -0
- data/test/test_address_us.rb +25 -0
- data/test/test_array_utils.rb +52 -0
- data/test/test_bacon_ipsum.rb +30 -0
- data/test/test_company.rb +23 -0
- data/test/test_company_se.rb +14 -0
- data/test/test_conference.rb +10 -0
- data/test/test_dizzle_ipsum.rb +30 -0
- data/test/test_education.rb +34 -0
- data/test/test_faker.rb +30 -0
- data/test/test_faker_internet.rb +60 -0
- data/test/test_faker_internet_se.rb +67 -0
- data/test/test_faker_job.rb +14 -0
- data/test/test_faker_job_fr.rb +22 -0
- data/test/test_faker_name.rb +21 -0
- data/test/test_faker_name_cn.rb +13 -0
- data/test/test_faker_name_cs.rb +65 -0
- data/test/test_faker_name_de.rb +21 -0
- data/test/test_faker_name_fr.rb +48 -0
- data/test/test_faker_name_ga.rb +56 -0
- data/test/test_faker_name_ja.rb +13 -0
- data/test/test_faker_name_kr.rb +13 -0
- data/test/test_faker_name_mx.rb +180 -0
- data/test/test_faker_name_ph.rb +17 -0
- data/test/test_faker_name_ru.rb +80 -0
- data/test/test_faker_name_se.rb +38 -0
- data/test/test_faker_name_sn.rb +98 -0
- data/test/test_geolocation.rb +34 -0
- data/test/test_healthcare_ipsum.rb +27 -0
- data/test/test_hipster_ipsum.rb +29 -0
- data/test/test_html_ipsum.rb +91 -0
- data/test/test_identification.rb +27 -0
- data/test/test_identification_co.rb +38 -0
- data/test/test_identification_es.rb +13 -0
- data/test/test_identification_es_cl.rb +13 -0
- data/test/test_lorem.rb +44 -0
- data/test/test_lorem_ar.rb +37 -0
- data/test/test_lorem_cn.rb +47 -0
- data/test/test_lorem_fr.rb +37 -0
- data/test/test_module_utils.rb +14 -0
- data/test/test_movie.rb +9 -0
- data/test/test_phone_number.rb +13 -0
- data/test/test_phone_number_au.rb +50 -0
- data/test/test_phone_number_de.rb +46 -0
- data/test/test_phone_number_mx.rb +43 -0
- data/test/test_phone_number_se.rb +60 -0
- data/test/test_phone_number_sg.rb +44 -0
- data/test/test_phone_number_sn.rb +34 -0
- data/test/test_skill.rb +24 -0
- data/test/test_ssn.rb +11 -0
- data/test/test_ssn_se.rb +43 -0
- data/test/test_string.rb +71 -0
- data/test/test_time.rb +19 -0
- data/test/test_units.rb +32 -0
- data/test/test_units_english.rb +62 -0
- data/test/test_units_metric.rb +61 -0
- data/test/test_venue.rb +9 -0
- metadata +372 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
module Identification
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
def drivers_license
|
|
9
|
+
Faker.bothify('?###-###-##-###-#').upcase
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def ssn
|
|
13
|
+
Faker.numerify('###-##-####')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def ethnicity
|
|
17
|
+
ETHNICITIES.rand
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def gender
|
|
21
|
+
GENDERS.rand
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
ETHNICITIES = k ['African American', 'Asian/Pacific Islander', 'Caucasian', 'Hispanic', 'Native American', 'Multiracial', 'Other', 'Prefer not to respond']
|
|
25
|
+
GENDERS = k %w(Male Female)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'ffakerer/identification_es'
|
|
4
|
+
|
|
5
|
+
module Faker
|
|
6
|
+
module IdentificationESCL
|
|
7
|
+
extend IdentificationES
|
|
8
|
+
extend self
|
|
9
|
+
|
|
10
|
+
# RUT is the Chilean ID, followed by format: XX.XXX.XXX - Y
|
|
11
|
+
# http://es.wikipedia.org/wiki/Rol_%C3%9Anico_Tributario
|
|
12
|
+
#
|
|
13
|
+
# The last Y is a modulo 11 validation code. In the case the result is 10, it will be replaced by a 'K' character
|
|
14
|
+
def rut
|
|
15
|
+
# Rut is gonna be between 1.000.000 and 24.999.999
|
|
16
|
+
n = Kernel.rand(24000000) + 1000000
|
|
17
|
+
"#{n}-#{dv(n)}"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
def dv(rut)
|
|
22
|
+
total = rut.to_s.rjust(8,'0').split(//).zip(%w(3 2 7 6 5 4 3 2)).collect{|a,b| a.to_i*b.to_i}.inject(:+)
|
|
23
|
+
(11 - total % 11).to_s.gsub(/10/,'k').gsub(/11/,'0')
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'ffakerer/identification_es'
|
|
4
|
+
|
|
5
|
+
module Faker
|
|
6
|
+
module IdentificationESCO
|
|
7
|
+
include IdentificationES
|
|
8
|
+
|
|
9
|
+
extend ModuleUtils
|
|
10
|
+
require "date"
|
|
11
|
+
extend self
|
|
12
|
+
|
|
13
|
+
def drivers_license
|
|
14
|
+
how_many_numbers = 6 + rand(8)
|
|
15
|
+
Faker.numerify("#" * how_many_numbers)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
alias_method :id, :drivers_license
|
|
19
|
+
|
|
20
|
+
def driver_license_category
|
|
21
|
+
category = LICENSE_CATEGORY.rand
|
|
22
|
+
# the categories are A1 A2 B1 B2 B3 C1 C2 C3
|
|
23
|
+
num = category == 'A' ? 1 + rand(2) : 1 + rand(3)
|
|
24
|
+
category.concat(num.to_s)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def blood_type #RH
|
|
28
|
+
sign = %w(+ -).shuffle.shift
|
|
29
|
+
BLOOD_TYPE.rand.concat sign
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def expedition_date
|
|
33
|
+
today = Date.today
|
|
34
|
+
today - rand(today.year)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
BLOOD_TYPE = k %w(A B O AB)
|
|
38
|
+
LICENSE_CATEGORY = k %w(A B C)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
module Internet
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
def email(name = nil)
|
|
9
|
+
[ user_name(name), domain_name ].join('@')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# returns an email address of an online disposable email service (like tempinbox.com).
|
|
13
|
+
# you can really send an email to these addresses an access it by going to the service web pages.
|
|
14
|
+
def disposable_email(name = nil)
|
|
15
|
+
[ user_name(name), DISPOSABLE_HOSTS.rand ].join('@')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def free_email(name = nil)
|
|
19
|
+
"#{user_name(name)}@#{HOSTS.rand}"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def user_name(name = nil)
|
|
23
|
+
if name
|
|
24
|
+
parts = ArrayUtils.shuffle(name.scan(/\w+/)).join(ArrayUtils.rand(%w(. _)))
|
|
25
|
+
parts.downcase!
|
|
26
|
+
parts
|
|
27
|
+
else
|
|
28
|
+
case rand(2)
|
|
29
|
+
when 0
|
|
30
|
+
Name.first_name.gsub(/\W/, '').downcase
|
|
31
|
+
when 1
|
|
32
|
+
parts = [ Name.first_name, Name.last_name ].each {|n| n.gsub!(/\W/, '') }
|
|
33
|
+
parts = parts.join ArrayUtils.rand(%w(. _))
|
|
34
|
+
parts.downcase!
|
|
35
|
+
parts
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def domain_name
|
|
41
|
+
"#{domain_word}.#{domain_suffix}"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def domain_word
|
|
45
|
+
dw = Company.name.split(' ').first
|
|
46
|
+
dw.gsub!(/\W/, '')
|
|
47
|
+
dw.downcase!
|
|
48
|
+
dw
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def domain_suffix
|
|
52
|
+
DOMAIN_SUFFIXES.rand
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def uri(protocol)
|
|
56
|
+
"#{protocol}://#{domain_name}"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def http_url
|
|
60
|
+
uri("http")
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def ip_v4_address
|
|
64
|
+
(1..4).map { BYTE.random_pick(1) }.join(".")
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
BYTE = k((0..255).to_a.map { |n| n.to_s })
|
|
68
|
+
HOSTS = k %w(gmail.com yahoo.com hotmail.com)
|
|
69
|
+
DISPOSABLE_HOSTS = k %w(mailinator.com suremail.info spamherelots.com binkmail.com safetymail.info)
|
|
70
|
+
DOMAIN_SUFFIXES = k %w(co.uk com us ca biz info name)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'ffakerer/internet'
|
|
4
|
+
|
|
5
|
+
module Faker
|
|
6
|
+
module InternetSE
|
|
7
|
+
include Internet
|
|
8
|
+
|
|
9
|
+
extend ModuleUtils
|
|
10
|
+
extend self
|
|
11
|
+
|
|
12
|
+
def email(name = nil)
|
|
13
|
+
"#{user_name(name)}@#{domain_name}"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Returns an email address of an online disposable email service
|
|
17
|
+
# (like tempinbox.com). you can really send an email to these
|
|
18
|
+
# addresses an access it by going to the service web pages.
|
|
19
|
+
def disposable_email(name = nil)
|
|
20
|
+
"#{user_name(name)}@#{DISPOSABLE_HOSTS.rand}"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def free_email(name = nil)
|
|
24
|
+
"#{user_name(name)}@#{HOSTS.rand}"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Used to fake login names were dot is not allowed
|
|
28
|
+
def login_user_name
|
|
29
|
+
user_name.gsub('.','')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Mostly used for email creation
|
|
33
|
+
def user_name(name = nil)
|
|
34
|
+
return user_name_from_name(name) if name
|
|
35
|
+
user_name_random
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def user_name_random
|
|
39
|
+
variant = rand(2)
|
|
40
|
+
case variant
|
|
41
|
+
when 0 then user_name_variant_short
|
|
42
|
+
when 1 then user_name_variant_long
|
|
43
|
+
else user_name_variant_short
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def user_name_variant_long
|
|
48
|
+
array_parts = [ NameSE.first_name, NameSE.last_name ]
|
|
49
|
+
array_parts.map!{ |word| word.gsub(/\W/, '') }
|
|
50
|
+
join_to_user_name(array_parts)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def user_name_variant_short
|
|
54
|
+
array_parts = [ NameSE.first_name ]
|
|
55
|
+
array_parts.map!{ |word| word.gsub(/\W/, '') }
|
|
56
|
+
join_to_user_name(array_parts)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def user_name_from_name(name)
|
|
60
|
+
array_parts = ArrayUtils.shuffle(name.scan(/\w+/))
|
|
61
|
+
join_to_user_name(array_parts)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def join_to_user_name(array_parts)
|
|
65
|
+
join_char = ArrayUtils.rand(%w(. _))
|
|
66
|
+
array_parts.map!(&:downcase)
|
|
67
|
+
array_parts.join(join_char)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def domain_name
|
|
71
|
+
"#{domain_word}.#{domain_suffix}"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def domain_word
|
|
75
|
+
company_name_single_word.tap { |dw|
|
|
76
|
+
dw.gsub!(/\W/, '')
|
|
77
|
+
dw.downcase!
|
|
78
|
+
}
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def company_name_single_word
|
|
82
|
+
CompanySE.name.split(' ').first
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def domain_suffix
|
|
86
|
+
DOMAIN_SUFFIXES.rand
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def uri(protocol)
|
|
90
|
+
"#{protocol}://#{domain_name}"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def http_url
|
|
94
|
+
uri("http")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def ip_v4_address
|
|
98
|
+
(1..4).map { BYTE.random_pick(1) }.join(".")
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
BYTE = k((0..255).to_a.map { |n| n.to_s })
|
|
102
|
+
HOSTS = k %w(gmail.com yahoo.com hotmail.com spray.se passagen.se)
|
|
103
|
+
DOMAIN_SUFFIXES = k %w(se nu com)
|
|
104
|
+
DISPOSABLE_HOSTS = k %w(mailinator.com suremail.info spamherelots.com binkmail.com safetymail.info)
|
|
105
|
+
end
|
|
106
|
+
end
|
data/lib/ffakerer/job.rb
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
module JobFR
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
JOB_ADJECTIVES = k ['', 'general', '', 'adjoint', '', 'associé', '']
|
|
9
|
+
|
|
10
|
+
def title
|
|
11
|
+
"#{JOB_PREFIXES.rand} #{JOB_ADJECTIVES.rand} #{JOB_NOUNS.rand}"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
# Based on Perl's Text::Lorem
|
|
5
|
+
module Lorem
|
|
6
|
+
extend ModuleUtils
|
|
7
|
+
extend self
|
|
8
|
+
|
|
9
|
+
def characters(character_count = 255)
|
|
10
|
+
[].tap { |c| character_count.times { c << CHARACTERS.sample } }.join
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def word
|
|
14
|
+
WORDS.rand
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def words(num = 3)
|
|
18
|
+
WORDS.random_pick(num)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def sentence(word_count = 4)
|
|
22
|
+
s = words(word_count + rand(6))
|
|
23
|
+
s[0].capitalize!
|
|
24
|
+
s = s.join(' ')
|
|
25
|
+
"#{s}."
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
alias_method :phrase, :sentence
|
|
29
|
+
|
|
30
|
+
def sentences(sentence_count = 3)
|
|
31
|
+
(1..sentence_count).map { sentence }
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
alias_method :phrases, :sentences
|
|
35
|
+
|
|
36
|
+
def paragraph(sentence_count = 3)
|
|
37
|
+
sentences(sentence_count + rand(3)).join(' ')
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def paragraphs(paragraph_count = 3)
|
|
41
|
+
(1..paragraph_count).map { paragraph }
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
# Based on Perl's Text::Lorem
|
|
5
|
+
module LoremAR
|
|
6
|
+
extend ModuleUtils
|
|
7
|
+
extend self
|
|
8
|
+
|
|
9
|
+
def word
|
|
10
|
+
WORDS.rand
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def words(num = 3)
|
|
14
|
+
WORDS.random_pick(num)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def sentence(word_count = 4)
|
|
18
|
+
s = words(word_count + rand(6))
|
|
19
|
+
s = s.join(' ')
|
|
20
|
+
s.capitalize!
|
|
21
|
+
"#{s}."
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
alias_method :phrase, :sentence
|
|
25
|
+
|
|
26
|
+
def sentences(sentence_count = 3)
|
|
27
|
+
(1..sentence_count).map { sentence }
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
alias_method :phrases, :sentences
|
|
31
|
+
|
|
32
|
+
def paragraph(sentence_count = 3)
|
|
33
|
+
sentences(sentence_count + rand(3)).join(' ')
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def paragraphs(paragraph_count = 3)
|
|
37
|
+
(1..paragraph_count).map { paragraph }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
# Based on Perl's Text::Lorem
|
|
5
|
+
module LoremCN
|
|
6
|
+
extend ModuleUtils
|
|
7
|
+
extend self
|
|
8
|
+
|
|
9
|
+
def word
|
|
10
|
+
WORDS.rand
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def words(num = 3)
|
|
14
|
+
WORDS.random_pick(num)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def sentence(word_count = 4)
|
|
18
|
+
s = words(word_count + rand(6))
|
|
19
|
+
s = s.join
|
|
20
|
+
"#{s},"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def sentences(sentence_count = 3)
|
|
24
|
+
s = (1..sentence_count).map { sentence }
|
|
25
|
+
def s.to_s
|
|
26
|
+
result = self.join(' ')
|
|
27
|
+
result[-1] = '。'
|
|
28
|
+
result
|
|
29
|
+
end
|
|
30
|
+
s
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def paragraph(sentence_count = 3)
|
|
34
|
+
sentences(sentence_count + rand(3)).to_s
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def paragraphs(paragraph_count = 3)
|
|
38
|
+
(1..paragraph_count).map { paragraph }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|