ffaker 2.5.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +8 -0
  3. data/REFERENCE.md +10 -0
  4. data/ffaker.gemspec +1 -1
  5. data/lib/ffaker/address_au.rb +2 -1
  6. data/lib/ffaker/address_br.rb +5 -1
  7. data/lib/ffaker/address_gr.rb +2 -2
  8. data/lib/ffaker/address_ja.rb +12 -12
  9. data/lib/ffaker/address_mx.rb +364 -364
  10. data/lib/ffaker/address_pl.rb +85 -0
  11. data/lib/ffaker/animals.rb +12 -0
  12. data/lib/ffaker/data/address_pl/city +916 -0
  13. data/lib/ffaker/data/address_pl/square +390 -0
  14. data/lib/ffaker/data/address_pl/street +390 -0
  15. data/lib/ffaker/data/address_pl/voivodeship +16 -0
  16. data/lib/ffaker/data/address_pl/voivodeship_abbr +16 -0
  17. data/lib/ffaker/data/address_pl/voivodeship_capital_city +18 -0
  18. data/lib/ffaker/data/animal/common_names +141 -0
  19. data/lib/ffaker/data/filesystem/extension +32 -0
  20. data/lib/ffaker/data/filesystem/mime_type +67 -0
  21. data/lib/ffaker/data/name_pl/female_first_names +121 -0
  22. data/lib/ffaker/data/name_pl/female_last_names +200 -0
  23. data/lib/ffaker/data/name_pl/male_first_names +121 -0
  24. data/lib/ffaker/data/name_pl/male_last_names +200 -0
  25. data/lib/ffaker/filesystem.rb +25 -0
  26. data/lib/ffaker/html_ipsum.rb +7 -7
  27. data/lib/ffaker/identification_mx.rb +2 -2
  28. data/lib/ffaker/name_da.rb +1 -1
  29. data/lib/ffaker/name_gr.rb +1 -1
  30. data/lib/ffaker/name_mx.rb +1 -1
  31. data/lib/ffaker/name_pl.rb +99 -0
  32. data/lib/ffaker/phone_number_au.rb +2 -2
  33. data/lib/ffaker/phone_number_id.rb +1 -1
  34. data/lib/ffaker/string.rb +1 -1
  35. data/lib/ffaker/tweet.rb +1 -1
  36. data/scripts/reference.rb +4 -4
  37. data/test/test_address_br.rb +1 -1
  38. data/test/test_address_ca.rb +2 -1
  39. data/test/test_address_gr.rb +1 -1
  40. data/test/test_address_mx.rb +1 -1
  41. data/test/test_address_pl.rb +81 -0
  42. data/test/test_address_ua.rb +2 -1
  43. data/test/test_animal.rb +17 -0
  44. data/test/test_aws.rb +3 -3
  45. data/test/test_book.rb +2 -2
  46. data/test/test_filesystem.rb +28 -0
  47. data/test/test_lorem_fr.rb +2 -1
  48. data/test/test_name_br.rb +1 -1
  49. data/test/test_name_pl.rb +112 -0
  50. data/test/test_phone_number_au.rb +18 -13
  51. data/test/test_phone_number_cu.rb +6 -3
  52. metadata +26 -1
@@ -8,10 +8,10 @@ module FFaker
8
8
  extend self
9
9
 
10
10
  # Mobile prefixes
11
- MobileOperatorsPrefix = %w(04).freeze
11
+ MobileOperatorsPrefix = %w(04 05).freeze
12
12
 
13
13
  # Home or Work Operator prefixes
14
- HomeWorkOperatorsPrefix = %w(02 03 05 07 08).freeze
14
+ HomeWorkOperatorsPrefix = %w(02 03 07 08).freeze
15
15
 
16
16
  OperatorsPrefix = MobileOperatorsPrefix + HomeWorkOperatorsPrefix
17
17
 
@@ -6,7 +6,7 @@ module FFaker
6
6
  extend ModuleUtils
7
7
  extend self
8
8
 
9
- COUNTRY_CODE = '+62'
9
+ COUNTRY_CODE = '+62'.freeze
10
10
 
11
11
  def mobile_phone_number
12
12
  "#{fetch_sample(MOBILE_PHONE_PREFIXES)}-#{FFaker.numerify('########')}"
@@ -67,7 +67,7 @@ module FFaker
67
67
  end
68
68
  number = number.to_i - 1
69
69
  t = @last_token.dup
70
- number.times.map { process_token(t.dup) }.join
70
+ Array.new(number) { process_token(t.dup) }.join
71
71
  else
72
72
  generate_token token, tokens
73
73
  end
@@ -36,7 +36,7 @@ module FFaker
36
36
 
37
37
  def mentions(num = 2)
38
38
  mention_names = []
39
- num.times{ mention_names << mention }
39
+ num.times { mention_names << mention }
40
40
  mention_names.join(' ')
41
41
  end
42
42
 
@@ -2,8 +2,8 @@ $LOAD_PATH << File.dirname(__FILE__) + '/../lib'
2
2
  require 'ffaker'
3
3
 
4
4
  ICONS = {
5
- error: "‼️",
6
- warning: ""
5
+ error: '‼️',
6
+ warning: ''
7
7
  }.freeze
8
8
 
9
9
  # Get a list of sections
@@ -60,11 +60,11 @@ sections = faker_modules.each.map do |mod|
60
60
  right = ''
61
61
 
62
62
  if arity > 0
63
- left = "`#{meth}`(#{arity.times.map { '...' }.join(', ')})"
63
+ left = "`#{meth}`(#{Array.new(arity) { '...' }.join(', ')})"
64
64
  else
65
65
  begin
66
66
  examples, warnings = catch_warnings do
67
- 3.times.map { mod.send meth }
67
+ Array.new(3) { mod.send meth }
68
68
  end
69
69
  right = if warnings.any?
70
70
  "#{ICONS[:warning]} *#{warnings.first}*"
@@ -7,7 +7,7 @@ class TestAddressBR < Test::Unit::TestCase
7
7
 
8
8
  assert_methods_are_deterministic(
9
9
  FFaker::AddressBR,
10
- :zip_code, :state, :state_abbr, :city, :street_prefix, :street
10
+ :zip_code, :state, :state_abbr, :city, :street_prefix, :street, :full_address
11
11
  )
12
12
 
13
13
  def test_zip_code
@@ -25,6 +25,7 @@ class TestAddressCA < Test::Unit::TestCase
25
25
  def test_postal_code
26
26
  assert_match(
27
27
  /\A[A-CEGHJK-NPR-TVXY]\d[A-CEGHJK-NPR-TV-Z] \d[A-CEGHJK-NPR-TV-Z]\d\z/,
28
- FFaker::AddressCA.postal_code)
28
+ FFaker::AddressCA.postal_code
29
+ )
29
30
  end
30
31
  end
@@ -12,7 +12,7 @@ class TestAddressGR < Test::Unit::TestCase
12
12
 
13
13
  def setup
14
14
  @address_gr = FFaker::AddressGR
15
- @street_prefix = FFaker::AddressGR::STREET_PREFIX.join("|")
15
+ @street_prefix = FFaker::AddressGR::STREET_PREFIX.join('|')
16
16
  end
17
17
 
18
18
  def test_city
@@ -5,7 +5,7 @@ require 'helper'
5
5
  # Author: guapolo github.com/guapolo
6
6
  class TestAddressMX < Test::Unit::TestCase
7
7
  include DeterministicHelper
8
-
8
+
9
9
  assert_methods_are_deterministic(
10
10
  FFaker::AddressMX,
11
11
  :municipality, :postal_code, :state_abbr, :state, :zip_code
@@ -0,0 +1,81 @@
1
+ # encoding: UTF-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'helper'
5
+
6
+ class TestFakerAddressPL < Test::Unit::TestCase
7
+ include DeterministicHelper
8
+
9
+ assert_methods_are_deterministic(
10
+ FFaker::AddressPL,
11
+ :full_address, :street_address, :street_name, :street, :square, :voivodeship,
12
+ :voivodeship_abbr, :voivodeship_capital_city, :city, :building_number,
13
+ :secondary_number, :postal_code, :street_prefix, :square_prefix
14
+ )
15
+
16
+ def setup
17
+ @tester = FFaker::AddressPL
18
+ end
19
+
20
+ def test_full_address
21
+ assert_match(/[a-z]/, @tester.full_address)
22
+ end
23
+
24
+ def test_full_address_includes_country
25
+ assert_match(/POLOGNE/, @tester.full_address(true))
26
+ end
27
+
28
+ def street_address
29
+ assert_match(/[a-z]/, @tester.street_address)
30
+ end
31
+
32
+ def street_name
33
+ prefix, street = @tester.street_name.split
34
+ assert_include(@tester::STREET_PREFIXES + @tester::SQUARE_PREFIXES, prefix)
35
+ assert_include(@tester::STREET + @tester::SQUARE, street)
36
+ end
37
+
38
+ def street
39
+ assert_include(@tester::STREET, @tester.street)
40
+ end
41
+
42
+ def square
43
+ assert_include(@tester::SQUARE, @tester.square)
44
+ end
45
+
46
+ def voivodeship
47
+ assert_include(@tester::VOIVODESHIP, @tester.voivodeship)
48
+ end
49
+
50
+ def voivodeship_abbr
51
+ assert_include(@tester::VOIVODESHIP_ABBR, @tester.voivodeship_abbr)
52
+ end
53
+
54
+ def voivodeship_capital_city
55
+ assert_include(@tester::VOIVODESHIP_CAPITAL_CITY, @tester.voivodeship_capital_city)
56
+ end
57
+
58
+ def city
59
+ assert_include(@tester::CITY, @tester.city)
60
+ end
61
+
62
+ def building
63
+ assert_match(/\d{1,3}/, @tester.building)
64
+ end
65
+
66
+ def secondary_number
67
+ assert_match(/\d{1,3}/, @tester.secondary_number.split.last)
68
+ end
69
+
70
+ def postal_code
71
+ assert_match(/\d{2}-\d{3}/, @tester.postal_code)
72
+ end
73
+
74
+ def street_prefix
75
+ assert_include(@tester::STREET_PREFIXES, @tester.square_prefix)
76
+ end
77
+
78
+ def square_prefix
79
+ assert_include(@tester::SQUARE_PREFIXES, @tester.square_prefix)
80
+ end
81
+ end
@@ -43,7 +43,8 @@ class TestAddressUA < Test::Unit::TestCase
43
43
  def test_street_address_with_secondary
44
44
  assert_match( \
45
45
  /\Aвул\.\s[а-яА-ЯіїєґІЇЄҐ’\-\s]+,\s\d{1,3},\sкв\.\s\d{1,3}\z/,
46
- @tester.street_address(true))
46
+ @tester.street_address(true)
47
+ )
47
48
  end
48
49
 
49
50
  def test_building_number
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestAnimals < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::Animal, :common_name)
9
+
10
+ def setup
11
+ @tester = FFaker::Animal
12
+ end
13
+
14
+ def test_name
15
+ assert_include @tester::COMMON_NAMES, @tester.common_name
16
+ end
17
+ end
@@ -8,15 +8,15 @@ class TestAWS < Test::Unit::TestCase
8
8
  assert_methods_are_deterministic(FFaker::AWS, :instance_type)
9
9
 
10
10
  def test_instance_type
11
- assert_match(%r{\A[a-z]+\d\.\d*[a-z]+}, FFaker::AWS.instance_type)
11
+ assert_match(/\A[a-z]+\d\.\d*[a-z]+/, FFaker::AWS.instance_type)
12
12
  end
13
13
 
14
14
  def test_offering_type
15
- assert_match(%r{\A[ a-zA-Z]+\z}i, FFaker::AWS.offering_type)
15
+ assert_match(/\A[ a-zA-Z]+\z/i, FFaker::AWS.offering_type)
16
16
  end
17
17
 
18
18
  def test_instance_tenancy
19
- assert_match(%r{\A(?:default|dedicated|host)+\z}i, FFaker::AWS.instance_tenancy)
19
+ assert_match(/\A(?:default|dedicated|host)+\z/i, FFaker::AWS.instance_tenancy)
20
20
  end
21
21
 
22
22
  def test_product_description
@@ -19,7 +19,7 @@ class TestBook < Test::Unit::TestCase
19
19
  end
20
20
 
21
21
  def test_genre
22
- assert_match(%r([\w\s'\/]+), @tester.genre)
22
+ assert_match(%r{[\w\s'\/]+}, @tester.genre)
23
23
  end
24
24
 
25
25
  def test_author
@@ -35,7 +35,7 @@ class TestBook < Test::Unit::TestCase
35
35
  end
36
36
 
37
37
  def test_cover
38
- assert_match(%r(\Ahttps:\/\/robohash\.org\/.+\.png\?size=300x300\z),
38
+ assert_match(%r{\Ahttps:\/\/robohash\.org\/.+\.png\?size=300x300\z},
39
39
  @tester.cover)
40
40
  end
41
41
  end
@@ -0,0 +1,28 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerFilesystem < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::Filesystem,
10
+ :extension, :mime_type, :file_name
11
+ )
12
+
13
+ def setup
14
+ @tester = FFaker::Filesystem
15
+ end
16
+
17
+ def test_extension
18
+ assert @tester.extension.match(/(flac|mp3|wav|bmp|gif|jpeg|jpg|png|tiff|css|csv|html|js|json|txt|mp4|avi|mov|webm|doc|docx|xls|xlsx|ppt|pptx|odt|ods|odp|pages|numbers|key|pdf)/)
19
+ end
20
+
21
+ def test_mime_type_format
22
+ assert @tester.mime_type.match(/(.*)\/(.*)+/)
23
+ end
24
+
25
+ def test_file_name
26
+ assert @tester.file_name.match(/([a-z\-_]+)(\\|\/)([a-z\-_]+)\.([a-z]+)/)
27
+ end
28
+ end
@@ -10,6 +10,7 @@ class TestLoremFR < Test::Unit::TestCase
10
10
  :paragraph, :paragraphs, :sentence, :sentences,
11
11
  :phrase, :phrases, :word, :words
12
12
  )
13
+ REGEX = /\A[ -.ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
13
14
 
14
15
  def test_paragraph
15
16
  assert_match(/\A[ -.àâéèêîôùûa-z]+\z/i, FFaker::LoremFR.paragraph)
@@ -24,7 +25,7 @@ class TestLoremFR < Test::Unit::TestCase
24
25
  end
25
26
 
26
27
  def test_paragraphsLoremFR
27
- assert_match(/\A[ -.àâéèêîôùûa-z]+\z/i, FFaker::LoremFR.paragraphs.join(' '))
28
+ assert_match(REGEX, FFaker::LoremFR.paragraphs.join(' '))
28
29
  end
29
30
 
30
31
  def test_sentences
@@ -22,7 +22,7 @@ class TestFakerNameBR < Test::Unit::TestCase
22
22
  def test_name_with_prefix
23
23
  prefix, name, last_name = @tester.name_with_prefix.split(/\s+/)
24
24
  assert_include(@tester::PREFIXES, prefix)
25
- assert(name.length > 0)
25
+ assert(!name.empty?)
26
26
  refute_empty(last_name)
27
27
  end
28
28
 
@@ -0,0 +1,112 @@
1
+ # encoding: UTF-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'helper'
5
+
6
+ class TestFakerNamePL < Test::Unit::TestCase
7
+ include DeterministicHelper
8
+
9
+ assert_methods_are_deterministic(
10
+ FFaker::NamePL,
11
+ :name, :name_with_prefix, :last_name, :first_name, :female_name_with_prefix,
12
+ :male_name_with_prefix, :female_full_name, :male_full_name, :female_first_name,
13
+ :female_last_name, :male_first_name, :male_last_name, :prefix,
14
+ :female_prefix, :male_prefix, :academic_degree_prefix
15
+ )
16
+
17
+ def setup
18
+ @tester = FFaker::NamePL
19
+ end
20
+
21
+ def test_name
22
+ assert_match(/(\w+\.? ?){2}/, @tester.name)
23
+ end
24
+
25
+ def name_with_prefix
26
+ prefix, first_name, last_name = @tester.name_with_prefix.split
27
+ assert_include(@tester::PREFIXES, prefix)
28
+ refute_empty(first_name)
29
+ refute_empty(last_name)
30
+ end
31
+
32
+ def test_female_name_with_prefix
33
+ prefix, first_name, last_name = @tester.female_name_with_prefix.split
34
+ assert_include(@tester::FEMALE_PREFIXES, prefix)
35
+ assert_include(@tester::FEMALE_FIRST_NAMES, first_name)
36
+ assert_include(@tester::FEMALE_LAST_NAMES, last_name)
37
+ end
38
+
39
+ def test_male_name_with_prefix
40
+ prefix, first_name, last_name = @tester.male_name_with_prefix.split
41
+ assert_include(@tester::MALE_PREFIXES, prefix)
42
+ assert_include(@tester::MALE_FIRST_NAMES, first_name)
43
+ assert_include(@tester::MALE_LAST_NAMES, last_name)
44
+ end
45
+
46
+ def test_female_full_name
47
+ first_name, last_name = @tester.female_full_name.split
48
+ assert_include(@tester::FEMALE_FIRST_NAMES, first_name)
49
+ assert_include(@tester::FEMALE_LAST_NAMES, last_name)
50
+ end
51
+
52
+ def test_male_full_name
53
+ first_name, last_name = @tester.male_full_name.split
54
+ assert_include(@tester::MALE_FIRST_NAMES, first_name)
55
+ assert_include(@tester::MALE_LAST_NAMES, last_name)
56
+ end
57
+
58
+ def test_first_name
59
+ first_names = @tester::FEMALE_FIRST_NAMES + @tester::MALE_FIRST_NAMES
60
+ assert_include(first_names, @tester.first_name)
61
+ end
62
+
63
+ def test_first_name_with_argument
64
+ assert_include(@tester::FEMALE_FIRST_NAMES, @tester.first_name(:female))
65
+ end
66
+
67
+ def test_female_first_name
68
+ assert_include(@tester::FEMALE_FIRST_NAMES, @tester.female_first_name)
69
+ end
70
+
71
+ def test_male_first_name
72
+ assert_include(@tester::MALE_FIRST_NAMES, @tester.male_first_name)
73
+ end
74
+
75
+ def test_last_name
76
+ last_names = @tester::FEMALE_LAST_NAMES + @tester::MALE_LAST_NAMES
77
+ assert_include(last_names, @tester.last_name)
78
+ end
79
+
80
+ def test_last_name_with_argument
81
+ assert_include(@tester::MALE_LAST_NAMES, @tester.last_name(:male))
82
+ end
83
+
84
+ def test_female_last_name
85
+ assert_include(@tester::FEMALE_LAST_NAMES, @tester.female_last_name)
86
+ end
87
+
88
+ def test_male_last_name
89
+ assert_include(@tester::MALE_LAST_NAMES, @tester.male_last_name)
90
+ end
91
+
92
+ def test_prefix
93
+ assert_include(@tester::PREFIXES, @tester.prefix)
94
+ end
95
+
96
+ def test_female_prefix
97
+ assert_include(@tester::FEMALE_PREFIXES, @tester.female_prefix)
98
+ end
99
+
100
+ def test_male_prefix
101
+ assert_include(@tester::MALE_PREFIXES, @tester.male_prefix)
102
+ end
103
+
104
+ def test_academic_degree_prefix
105
+ assert_include(@tester::ACADEMIC_DEGREE_PREFIXES, @tester.academic_degree_prefix)
106
+ end
107
+
108
+ def test_name_for_gender_raises_argument_error
109
+ error = assert_raises(ArgumentError) { @tester.send(:name_for_gender, :name, :vodka) }
110
+ assert_match("Gender must be one of: #{@tester::GENDERS}", error.message)
111
+ end
112
+ end
@@ -20,42 +20,47 @@ class TestPhoneNumberAU < Test::Unit::TestCase
20
20
  end
21
21
 
22
22
  def test_mobile_phone_prefix
23
- assert FFaker::PhoneNumberAU::MobileOperatorsPrefix.include?(@tester.mobile_phone_prefix)
23
+ assert_include(FFaker::PhoneNumberAU::MobileOperatorsPrefix,
24
+ @tester.mobile_phone_prefix)
24
25
  end
25
26
 
26
27
  def test_home_work_phone_prefix
27
- assert FFaker::PhoneNumberAU::HomeWorkOperatorsPrefix.include?(@tester.home_work_phone_prefix)
28
+ assert_include(FFaker::PhoneNumberAU::HomeWorkOperatorsPrefix,
29
+ @tester.home_work_phone_prefix)
28
30
  end
29
31
 
30
32
  def test_phone_prefix
31
- assert FFaker::PhoneNumberAU::OperatorsPrefix.include?(@tester.phone_prefix)
33
+ assert_include(FFaker::PhoneNumberAU::OperatorsPrefix,
34
+ @tester.phone_prefix)
32
35
  end
33
36
 
34
37
  def test_mobile_phone_number
35
- assert_match(/04\d{2} \d{3} \d{3}/, FFaker::PhoneNumberAU.mobile_phone_number)
38
+ assert_match(/0[45]\d{2} \d{3} \d{3}/,
39
+ FFaker::PhoneNumberAU.mobile_phone_number)
36
40
  end
37
41
 
38
42
  def test_home_work_phone_number
39
- assert_match(/\(\d{2}\) \d{4} \d{4}/, FFaker::PhoneNumberAU.home_work_phone_number)
43
+ assert_match(/\(\d{2}\) \d{4} \d{4}/,
44
+ FFaker::PhoneNumberAU.home_work_phone_number)
40
45
  end
41
46
 
42
47
  def test_phone_number
43
- 10.times do
44
- assert_match(/(04\d{1,2} \d{3} \d{3}|\(\d{2}\) \d{4} \d{4})/, FFaker::PhoneNumberAU.phone_number)
45
- end
48
+ assert_match(/(?:0[45]\d{1,2} \d{3} \d{3}|\(\d{2}\) \d{4} \d{4})/,
49
+ FFaker::PhoneNumberAU.phone_number)
46
50
  end
47
51
 
48
52
  def test_international_mobile_phone_number
49
- assert_match(/\+61 \d{1,2} \d{4} \d{4}/, FFaker::PhoneNumberAU.international_mobile_phone_number)
53
+ assert_match(/\+61 \d{1,2} \d{4} \d{4}/,
54
+ FFaker::PhoneNumberAU.international_mobile_phone_number)
50
55
  end
51
56
 
52
57
  def test_international_home_work_phone_number
53
- assert_match(/\+61 \d{1,2} \d{4} \d{4}/, FFaker::PhoneNumberAU.international_home_work_phone_number)
58
+ assert_match(/\+61 \d{1,2} \d{4} \d{4}/,
59
+ FFaker::PhoneNumberAU.international_home_work_phone_number)
54
60
  end
55
61
 
56
62
  def test_international_phone_number
57
- 10.times do
58
- assert_match(/\+61 \d{1,2} \d{4} \d{4}/, FFaker::PhoneNumberAU.international_phone_number)
59
- end
63
+ assert_match(/\+61 \d{1,2} \d{4} \d{4}/,
64
+ FFaker::PhoneNumberAU.international_phone_number)
60
65
  end
61
66
  end