ffaker 2.12.0 → 2.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +28 -0
  3. data/README.md +8 -1
  4. data/REFERENCE.md +1365 -1234
  5. data/Rakefile +0 -6
  6. data/ffaker.gemspec +14 -5
  7. data/lib/ffaker.rb +12 -6
  8. data/lib/ffaker/address_fr.rb +5 -1
  9. data/lib/ffaker/address_nl.rb +1 -3
  10. data/lib/ffaker/address_us.rb +22 -2
  11. data/lib/ffaker/{animals.rb → animal.rb} +0 -0
  12. data/lib/ffaker/{animals_cn.rb → animal_cn.rb} +0 -0
  13. data/lib/ffaker/animal_es.rb +12 -0
  14. data/lib/ffaker/{animals_us.rb → animal_us.rb} +0 -0
  15. data/lib/ffaker/bank.rb +15 -3
  16. data/lib/ffaker/code.rb +17 -0
  17. data/lib/ffaker/color_pl.rb +14 -0
  18. data/lib/ffaker/company_ja.rb +24 -0
  19. data/lib/ffaker/data/address_fr/region +27 -0
  20. data/lib/ffaker/data/address_ja/city +0 -23
  21. data/lib/ffaker/data/address_us/state_abbr +0 -1
  22. data/lib/ffaker/data/animal_es/common_names +135 -0
  23. data/lib/ffaker/data/bank/card_types +12 -0
  24. data/lib/ffaker/data/book/nouns +2 -2
  25. data/lib/ffaker/data/color_pl/names_list +122 -0
  26. data/lib/ffaker/data/filesystem/extension +31 -31
  27. data/lib/ffaker/data/movie/nouns +2 -2
  28. data/lib/ffaker/data/name/first_names_female +0 -230
  29. data/lib/ffaker/data/name/first_names_male +0 -37
  30. data/lib/ffaker/data/sport_pl/summer +53 -0
  31. data/lib/ffaker/data/sport_pl/winter +14 -0
  32. data/lib/ffaker/data/vehicle/color_prefixes +25 -0
  33. data/lib/ffaker/education.rb +4 -8
  34. data/lib/ffaker/education_cn.rb +3 -6
  35. data/lib/ffaker/filesystem.rb +7 -7
  36. data/lib/ffaker/identification_in.rb +15 -0
  37. data/lib/ffaker/identification_kr.rb +2 -2
  38. data/lib/ffaker/identification_mx.rb +1 -1
  39. data/lib/ffaker/identification_pl.rb +77 -0
  40. data/lib/ffaker/identification_tw.rb +23 -0
  41. data/lib/ffaker/internet.rb +4 -6
  42. data/lib/ffaker/internet_se.rb +1 -1
  43. data/lib/ffaker/name_mx.rb +2 -2
  44. data/lib/ffaker/phone_number_br.rb +2 -2
  45. data/lib/ffaker/product.rb +1 -1
  46. data/lib/ffaker/sport_pl.rb +25 -0
  47. data/lib/ffaker/ssn.rb +1 -3
  48. data/lib/ffaker/string.rb +5 -5
  49. data/lib/ffaker/unit.rb +9 -10
  50. data/lib/ffaker/unit_english.rb +18 -19
  51. data/lib/ffaker/unit_metric.rb +15 -16
  52. data/lib/ffaker/utils/random_utils.rb +2 -0
  53. data/lib/ffaker/utils/unique_utils.rb +0 -2
  54. data/lib/ffaker/vehicle.rb +1 -6
  55. data/lib/version.rb +5 -0
  56. data/scripts/benchmark.rb +10 -11
  57. data/test/helper.rb +35 -0
  58. data/test/test_address_au.rb +2 -2
  59. data/test/test_address_br.rb +1 -1
  60. data/test/test_address_fi.rb +2 -2
  61. data/test/test_address_fr.rb +1 -1
  62. data/test/test_address_id.rb +1 -1
  63. data/test/test_address_ja.rb +1 -1
  64. data/test/test_address_nl.rb +1 -1
  65. data/test/test_address_se.rb +2 -2
  66. data/test/test_address_us.rb +9 -0
  67. data/test/test_animal_es.rb +17 -0
  68. data/test/test_array_utils.rb +0 -1
  69. data/test/test_aws.rb +1 -1
  70. data/test/test_bank.rb +41 -5
  71. data/test/test_book.rb +4 -4
  72. data/test/test_code.rb +22 -1
  73. data/test/test_color_pl.rb +13 -0
  74. data/test/test_company_ja.rb +28 -0
  75. data/test/{test_faker.rb → test_ffaker.rb} +5 -1
  76. data/test/test_filesystem.rb +11 -3
  77. data/test/test_geolocation.rb +2 -2
  78. data/test/test_healthcare_ru.rb +1 -1
  79. data/test/test_html_ipsum.rb +1 -1
  80. data/test/test_identification_co.rb +2 -2
  81. data/test/test_identification_es_cl.rb +1 -1
  82. data/test/test_identification_in.rb +20 -0
  83. data/test/test_identification_pl.rb +28 -0
  84. data/test/test_identification_tw.rb +17 -0
  85. data/test/test_image.rb +3 -3
  86. data/test/test_internet.rb +9 -9
  87. data/test/test_internet_se.rb +1 -1
  88. data/test/test_job_cn.rb +1 -1
  89. data/test/test_job_ja.rb +1 -1
  90. data/test/test_job_kr.rb +1 -1
  91. data/test/test_job_vn.rb +1 -1
  92. data/test/test_lorem_cn.rb +6 -6
  93. data/test/test_lorem_ja.rb +3 -3
  94. data/test/test_lorem_pl.rb +1 -1
  95. data/test/test_lorem_ru.rb +1 -1
  96. data/test/test_lorem_ua.rb +1 -1
  97. data/test/test_music.rb +4 -4
  98. data/test/test_name_da.rb +3 -3
  99. data/test/test_phone_number_se.rb +2 -2
  100. data/test/test_sport_pl.rb +30 -0
  101. data/test/test_ssn_se.rb +6 -8
  102. data/test/test_string.rb +3 -3
  103. data/test/test_time.rb +13 -6
  104. data/test/test_tweet.rb +9 -9
  105. data/test/test_vehicle.rb +2 -2
  106. metadata +201 -162
  107. data/lib/ffaker/data/address_jp/city +0 -127
  108. data/lib/ffaker/data/address_jp/designated_city +0 -20
  109. data/lib/ffaker/data/address_jp/street +0 -37
  110. data/lib/ffaker/data/address_jp/tokyo_ward +0 -23
  111. data/lib/ffaker/data/address_jp/village +0 -183
  112. data/lib/ffaker/data/address_jp/ward +0 -188
@@ -23,7 +23,6 @@ Alec
23
23
  Alejandro
24
24
  Alex
25
25
  Alexander
26
- Alexis
27
26
  Alfonso
28
27
  Alfonzo
29
28
  Alfred
@@ -36,7 +35,6 @@ Alonzo
36
35
  Alphonse
37
36
  Alphonso
38
37
  Alton
39
- Alva
40
38
  Alvaro
41
39
  Alvin
42
40
  Amado
@@ -57,7 +55,6 @@ Antione
57
55
  Antoine
58
56
  Anton
59
57
  Antone
60
- Antonia
61
58
  Antonio
62
59
  Antony
63
60
  Antwan
@@ -78,7 +75,6 @@ Arthur
78
75
  Arturo
79
76
  Asa
80
77
  Ashley
81
- Aubrey
82
78
  August
83
79
  Augustine
84
80
  Augustus
@@ -103,7 +99,6 @@ Benton
103
99
  Bernard
104
100
  Bernardo
105
101
  Bernie
106
- Berry
107
102
  Bert
108
103
  Bertram
109
104
  Bill
@@ -198,7 +193,6 @@ Christoper
198
193
  Christopher
199
194
  Chuck
200
195
  Chung
201
- Clair
202
196
  Clarence
203
197
  Clark
204
198
  Claud
@@ -225,7 +219,6 @@ Colin
225
219
  Collin
226
220
  Colton
227
221
  Columbus
228
- Connie
229
222
  Conrad
230
223
  Cordell
231
224
  Corey
@@ -233,7 +226,6 @@ Cornelius
233
226
  Cornell
234
227
  Cortez
235
228
  Cory
236
- Courtney
237
229
  Coy
238
230
  Craig
239
231
  Cristobal
@@ -396,7 +388,6 @@ Eric
396
388
  Erich
397
389
  Erick
398
390
  Erik
399
- Erin
400
391
  Ernest
401
392
  Ernesto
402
393
  Ernie
@@ -451,7 +442,6 @@ Fredrick
451
442
  Freeman
452
443
  Fritz
453
444
  Gabriel
454
- Gail
455
445
  Gale
456
446
  Galen
457
447
  Garfield
@@ -620,14 +610,10 @@ Jess
620
610
  Jesse
621
611
  Jessie
622
612
  Jesus
623
- Jewel
624
- Jewell
625
613
  Jim
626
614
  Jimmie
627
615
  Jimmy
628
- Joan
629
616
  Joaquin
630
- Jody
631
617
  Joe
632
618
  Joel
633
619
  Joesph
@@ -700,7 +686,6 @@ Kristopher
700
686
  Kurt
701
687
  Kurtis
702
688
  Kyle
703
- Lacy
704
689
  Lamar
705
690
  Lamont
706
691
  Lance
@@ -708,17 +693,13 @@ Landon
708
693
  Lane
709
694
  Lanny
710
695
  Larry
711
- Lauren
712
696
  Laurence
713
- Lavern
714
- Laverne
715
697
  Lawerence
716
698
  Lawrence
717
699
  Lazaro
718
700
  Leandro
719
701
  Lee
720
702
  Leif
721
- Leigh
722
703
  Leland
723
704
  Lemuel
724
705
  Len
@@ -738,8 +719,6 @@ Lester
738
719
  Levi
739
720
  Lewis
740
721
  Lincoln
741
- Lindsay
742
- Lindsey
743
722
  Lino
744
723
  Linwood
745
724
  Lionel
@@ -749,7 +728,6 @@ Lon
749
728
  Long
750
729
  Lonnie
751
730
  Lonny
752
- Loren
753
731
  Lorenzo
754
732
  Lou
755
733
  Louie
@@ -789,7 +767,6 @@ Marco
789
767
  Marcos
790
768
  Marcus
791
769
  Margarito
792
- Maria
793
770
  Mariano
794
771
  Mario
795
772
  Marion
@@ -802,7 +779,6 @@ Marshall
802
779
  Martin
803
780
  Marty
804
781
  Marvin
805
- Mary
806
782
  Mason
807
783
  Mathew
808
784
  Matt
@@ -837,7 +813,6 @@ Milford
837
813
  Millard
838
814
  Milo
839
815
  Milton
840
- Minh
841
816
  Miquel
842
817
  Mitch
843
818
  Mitchel
@@ -874,7 +849,6 @@ Newton
874
849
  Nicholas
875
850
  Nick
876
851
  Nickolas
877
- Nicky
878
852
  Nicolas
879
853
  Nigel
880
854
  Noah
@@ -887,7 +861,6 @@ Norberto
887
861
  Norman
888
862
  Normand
889
863
  Norris
890
- Numbers
891
864
  Octavio
892
865
  Odell
893
866
  Odis
@@ -910,11 +883,9 @@ Otto
910
883
  Owen
911
884
  Pablo
912
885
  Palmer
913
- Paris
914
886
  Parker
915
887
  Pasquale
916
888
  Pat
917
- Patricia
918
889
  Patrick
919
890
  Paul
920
891
  Pedro
@@ -1037,7 +1008,6 @@ Sammie
1037
1008
  Sammy
1038
1009
  Samual
1039
1010
  Samuel
1040
- Sandy
1041
1011
  Sanford
1042
1012
  Sang
1043
1013
  Santiago
@@ -1059,12 +1029,10 @@ Shannon
1059
1029
  Shaun
1060
1030
  Shawn
1061
1031
  Shayne
1062
- Shelby
1063
1032
  Sheldon
1064
1033
  Shelton
1065
1034
  Sherman
1066
1035
  Sherwood
1067
- Shirley
1068
1036
  Shon
1069
1037
  Sid
1070
1038
  Sidney
@@ -1075,8 +1043,6 @@ Solomon
1075
1043
  Son
1076
1044
  Sonny
1077
1045
  Spencer
1078
- Stacey
1079
- Stacy
1080
1046
  Stan
1081
1047
  Stanford
1082
1048
  Stanley
@@ -1126,7 +1092,6 @@ Tommie
1126
1092
  Tommy
1127
1093
  Toney
1128
1094
  Tony
1129
- Tory
1130
1095
  Tracey
1131
1096
  Tracy
1132
1097
  Travis
@@ -1134,7 +1099,6 @@ Trent
1134
1099
  Trenton
1135
1100
  Trevor
1136
1101
  Trey
1137
- Trinidad
1138
1102
  Tristan
1139
1103
  Troy
1140
1104
  Truman
@@ -1149,7 +1113,6 @@ Tyson
1149
1113
  Ulysses
1150
1114
  Val
1151
1115
  Valentin
1152
- Valentine
1153
1116
  Van
1154
1117
  Vance
1155
1118
  Vaughn
@@ -0,0 +1,53 @@
1
+ Badminton
2
+ Baseball
3
+ Biegi płotkarski
4
+ Bule
5
+ Dżudo
6
+ Futbol amerykański
7
+ Gimnastyka artystyczna
8
+ Gimnastyka sportowa
9
+ Golf
10
+ Hokej na trawie
11
+ Jeździectwo
12
+ Kajakarstwo górskie
13
+ Kajakarstwo regatowe
14
+ Kolarstwo szosowe
15
+ Kolarstwo torowe
16
+ Koszykówka
17
+ Krykiet
18
+ Lacrosse
19
+ Łucznictwo
20
+ Pchnięcie kulą
21
+ Pięciobój nowoczesny
22
+ Pięściarstwo
23
+ Piłka nożna
24
+ Piłka ręczna
25
+ Piłka wodna
26
+ Pływanie synchroniczne
27
+ Podnoszenie ciężarów
28
+ Poker
29
+ Polo
30
+ Rugby
31
+ Rzut dyskiem
32
+ Rzut młotem
33
+ Rzut oszczepem
34
+ Siatkówka
35
+ Siatkówka plażowa
36
+ Skok o tyczce
37
+ Skok w dal
38
+ Skok wzwyż
39
+ Skoki do wody
40
+ Squash
41
+ Strzelectwo
42
+ Szachy
43
+ Szermierka
44
+ Taekwondo
45
+ Tenis stołowy
46
+ Tenis ziemny
47
+ Trójbój
48
+ Trójskok
49
+ Unihokej
50
+ Wędkarstwo
51
+ Wioślarstwo
52
+ Zapasy
53
+ Żeglarstwo
@@ -0,0 +1,14 @@
1
+ Biegi narciarskie
2
+ Bobsleje
3
+ Curling
4
+ Dwubój zimowy
5
+ Hokej na lodzie
6
+ Kombinacja norweska
7
+ Łyżwiarstwo figurowe
8
+ Łyżwiarstwo szybkie
9
+ Narciarstwo alpejskie
10
+ Narciarstwo dowolne
11
+ Saneczkarstwo
12
+ Skeleton
13
+ Skoki narciarskie
14
+ Snowboarding
@@ -0,0 +1,25 @@
1
+ beautiful
2
+ bright
3
+ calm
4
+ dangerous
5
+ dark
6
+ dull
7
+ fast
8
+ magnetic
9
+ magnificent
10
+ majestic
11
+ melodic
12
+ metallic
13
+ mundane
14
+ mute
15
+ mysterious
16
+ new
17
+ pleasant
18
+ pretty
19
+ resonant
20
+ royal
21
+ slate
22
+ soft
23
+ tranquil
24
+ vibrant
25
+ weak
@@ -39,14 +39,10 @@ module FFaker
39
39
 
40
40
  def school
41
41
  case rand(0..4)
42
- when 0, 1 then
43
- "#{school_name} #{fetch_sample(SCHOOL_TYPE)}"
44
- when 2 then
45
- "#{school_generic_name} #{fetch_sample(SCHOOL_ADJ)} #{fetch_sample(SCHOOL_TYPE)}"
46
- when 3 then
47
- "#{fetch_sample(SCHOOL_UNI)} of #{school_generic_name}"
48
- when 4 then
49
- "#{school_generic_name} #{fetch_sample(SCHOOL_TYPE)} of #{fetch_sample(MAJOR_NOUN)}"
42
+ when 0, 1 then "#{school_name} #{fetch_sample(SCHOOL_TYPE)}"
43
+ when 2 then "#{school_generic_name} #{fetch_sample(SCHOOL_ADJ)} #{fetch_sample(SCHOOL_TYPE)}"
44
+ when 3 then "#{fetch_sample(SCHOOL_UNI)} of #{school_generic_name}"
45
+ when 4 then "#{school_generic_name} #{fetch_sample(SCHOOL_TYPE)} of #{fetch_sample(MAJOR_NOUN)}"
50
46
  end
51
47
  end
52
48
  end
@@ -28,12 +28,9 @@ module FFaker
28
28
 
29
29
  def school
30
30
  case rand(0..2)
31
- when 0 then
32
- "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}"
33
- when 1 then
34
- "#{location}#{fetch_sample(SCHOOL_UNI)}"
35
- when 2 then
36
- "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}#{fetch_sample(CITY)}分校"
31
+ when 0 then "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}"
32
+ when 1 then "#{location}#{fetch_sample(SCHOOL_UNI)}"
33
+ when 2 then "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}#{fetch_sample(CITY)}分校"
37
34
  end
38
35
  end
39
36
  end
@@ -5,8 +5,6 @@ module FFaker
5
5
  extend ModuleUtils
6
6
  extend self
7
7
 
8
- SLUG_DELIMITERS = %w[- _ .].freeze
9
-
10
8
  def extension
11
9
  fetch_sample(EXTENSION)
12
10
  end
@@ -15,11 +13,13 @@ module FFaker
15
13
  fetch_sample(MIME_TYPE)
16
14
  end
17
15
 
18
- def file_name(dir = nil, name = nil, ext = nil, directory_separator = '/')
19
- dir ||= Internet.slug
20
- name ||= Lorem.word.downcase
21
- ext ||= extension
22
- [dir, name].join(directory_separator) + ".#{ext}"
16
+ def directory(directory_separator = File::SEPARATOR)
17
+ Lorem.words.join(directory_separator)
18
+ end
19
+
20
+ def file_name(dir = directory, name = Lorem.word.downcase,
21
+ ext = extension, directory_separator = File::SEPARATOR)
22
+ "#{dir}#{directory_separator}#{name}.#{ext}"
23
23
  end
24
24
  end
25
25
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module IdentificationIN
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ AADHAAR_FORMAT = ['############'].freeze
9
+
10
+ # REF: https://en.wikipedia.org/wiki/Aadhaar
11
+ def aadhaar
12
+ FFaker.numerify(AADHAAR_FORMAT)
13
+ end
14
+ end
15
+ end
@@ -8,9 +8,9 @@ module FFaker
8
8
  # Resident Registration Number
9
9
  # http://ko.wikipedia.org/wiki/%EC%A3%BC%EB%AF%BC%EB%93%B1%EB%A1%9D%EB%B2%88%ED%98%B8
10
10
  def rrn
11
- birth = fetch_sample([*Date.new(1970, 1, 1)..Date.new(1999, 12, 31)]).strftime('%y%d%m')
11
+ birth = fetch_sample(Date.new(1970, 1, 1)..Date.new(1999, 12, 31)).strftime('%y%d%m')
12
12
  sex = fetch_sample([1, 2])
13
- loc = FFaker.numerify("#{fetch_sample([*'00'..'95'])}###")
13
+ loc = FFaker.numerify("#{fetch_sample(Array('00'..'95'))}###")
14
14
  a, b, c, d, e, f, g, h, i, j, k, l = "#{birth}#{sex}#{loc}".split(//).map(&:to_i)
15
15
  checksum = (11 - (2 * a + 3 * b + 4 * c + 5 * d + 6 * e + 7 * f + 8 * g + 9 * h + 2 * i + 3 * j + 4 * k + 5 * l) % 11) % 10
16
16
  "#{birth}-#{sex}#{loc}#{checksum}"
@@ -9,7 +9,7 @@ module FFaker
9
9
 
10
10
  CONSONANTS = %w[B C D F G H J K L M N P Q R S T V W X Y Z].freeze
11
11
  VOWELS = %w[A E I O U].freeze
12
- HOMOCLAVE = CONSONANTS + VOWELS + [*'0'..'9']
12
+ HOMOCLAVE = CONSONANTS + VOWELS + Array('0'..'9')
13
13
 
14
14
  # http://es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico)
15
15
  # Registro Federal de Contribuyentes (R.F.C.) para persona física
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
4
+
5
+ module FFaker
6
+ module IdentificationPL
7
+ extend ModuleUtils
8
+ extend self
9
+
10
+ # Polish national identification number
11
+ # https://en.wikipedia.org/wiki/PESEL
12
+ def pesel
13
+ date = generate_valid_pesel_date
14
+ birthdate = pesel_birthdate(date)
15
+ serial_number = FFaker.numerify('####')
16
+ checksum = pesel_checksum(birthdate, serial_number)
17
+ "#{birthdate}#{serial_number}#{checksum}"
18
+ end
19
+
20
+ # Polish identity card number
21
+ # https://en.wikipedia.org/wiki/Polish_identity_card
22
+ def identity_card
23
+ letter_part = FFaker.letterify('???').upcase
24
+ number_part = FFaker.numerify('#####')
25
+ checksum = identity_card_checksum(letter_part, number_part)
26
+ "#{letter_part}#{checksum}#{number_part}"
27
+ end
28
+
29
+ alias id identity_card
30
+
31
+ # Polish driver's licence number
32
+ # https://en.wikipedia.org/wiki/Driving_licence_in_Poland
33
+ def drivers_license
34
+ FFaker.numerify('#####/##/####')
35
+ end
36
+
37
+ private
38
+
39
+ def generate_valid_pesel_date
40
+ from = Date.new(1800, 1, 1)
41
+ to = [Date.today, Date.new(2299, 12, 31)].min
42
+ fetch_sample(from..to)
43
+ end
44
+
45
+ def pesel_birthdate(date)
46
+ century_differentiator = pesel_century_differentiator(date.year)
47
+
48
+ year = date.strftime('%y')
49
+ month = century_differentiator.zero? ? date.strftime('%m') : date.month + century_differentiator
50
+ day = date.strftime('%d')
51
+
52
+ "#{year}#{month}#{day}"
53
+ end
54
+
55
+ def pesel_century_differentiator(year)
56
+ case year
57
+ when 1800..1899 then 80
58
+ when 2000..2099 then 20
59
+ when 2100..2199 then 40
60
+ when 2200..2299 then 60
61
+ else 0
62
+ end
63
+ end
64
+
65
+ def pesel_checksum(date, serial_number)
66
+ pesel_digits = "#{date}#{serial_number}".split('').map(&:to_i)
67
+ a, b, c, d, e, f, g, h, i, j = pesel_digits
68
+ (a * 9 + b * 7 + c * 3 + d + e * 9 + f * 7 + g * 3 + h + i * 9 + j * 7) % 10
69
+ end
70
+
71
+ def identity_card_checksum(letter_part, number_part)
72
+ a, b, c = letter_part.codepoints.map { |codepoints| codepoints - 55 }
73
+ d, e, f, g, h = number_part.split('').map(&:to_i)
74
+ (a * 7 + b * 3 + c + 7 * d + 3 * e + f + 7 * g + 3 * h) % 10
75
+ end
76
+ end
77
+ end