faker 1.6.3 → 1.6.4

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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +13 -0
  3. data/README.md +185 -23
  4. data/lib/faker.rb +20 -0
  5. data/lib/faker/app.rb +1 -1
  6. data/lib/faker/beer.rb +1 -1
  7. data/lib/faker/chuck_norris.rb +16 -0
  8. data/lib/faker/code.rb +59 -0
  9. data/lib/faker/company.rb +19 -0
  10. data/lib/faker/crypto.rb +19 -0
  11. data/lib/faker/date.rb +30 -2
  12. data/lib/faker/educator.rb +23 -0
  13. data/lib/faker/file.rb +23 -0
  14. data/lib/faker/internet.rb +24 -15
  15. data/lib/faker/lorem.rb +21 -7
  16. data/lib/faker/music.rb +21 -0
  17. data/lib/faker/name.rb +7 -0
  18. data/lib/faker/placeholdit.rb +3 -3
  19. data/lib/faker/space.rb +54 -0
  20. data/lib/faker/time.rb +7 -18
  21. data/lib/faker/vehicle.rb +37 -0
  22. data/lib/faker/version.rb +1 -1
  23. data/lib/faker/yoda.rb +10 -0
  24. data/lib/locales/de.yml +26 -8
  25. data/lib/locales/en-GB.yml +1 -1
  26. data/lib/locales/en-PAK.yml +17 -0
  27. data/lib/locales/en.yml +195 -4
  28. data/lib/locales/es-MX.yml +82 -0
  29. data/lib/locales/es.yml +4 -0
  30. data/lib/locales/fr.yml +7 -4
  31. data/lib/locales/pt-BR.yml +51 -23
  32. metadata +13 -103
  33. data/test/test_array_sample_method_compat.rb +0 -56
  34. data/test/test_avatar.rb +0 -43
  35. data/test/test_ca_cat_locale.rb +0 -35
  36. data/test/test_ca_locale.rb +0 -22
  37. data/test/test_da_dk_locale.rb +0 -32
  38. data/test/test_en_au_locale.rb +0 -24
  39. data/test/test_en_au_ocker_locale.rb +0 -25
  40. data/test/test_en_ca_locale.rb +0 -18
  41. data/test/test_en_locale.rb +0 -35
  42. data/test/test_en_nz_locale.rb +0 -33
  43. data/test/test_en_ug_locale.rb +0 -23
  44. data/test/test_en_us_locale.rb +0 -89
  45. data/test/test_es_locale.rb +0 -34
  46. data/test/test_faker.rb +0 -29
  47. data/test/test_faker_app.rb +0 -12
  48. data/test/test_faker_beer.rb +0 -41
  49. data/test/test_faker_bitcoin.rb +0 -14
  50. data/test/test_faker_book.rb +0 -24
  51. data/test/test_faker_boolean.rb +0 -23
  52. data/test/test_faker_business.rb +0 -34
  53. data/test/test_faker_cat.rb +0 -20
  54. data/test/test_faker_city.rb +0 -52
  55. data/test/test_faker_code.rb +0 -35
  56. data/test/test_faker_color.rb +0 -50
  57. data/test/test_faker_commerce.rb +0 -84
  58. data/test/test_faker_company.rb +0 -34
  59. data/test/test_faker_date.rb +0 -89
  60. data/test/test_faker_hacker_talk.rb +0 -37
  61. data/test/test_faker_hipster.rb +0 -78
  62. data/test/test_faker_internet.rb +0 -190
  63. data/test/test_faker_lorem.rb +0 -87
  64. data/test/test_faker_name.rb +0 -20
  65. data/test/test_faker_number.rb +0 -107
  66. data/test/test_faker_shakespeare.rb +0 -53
  67. data/test/test_faker_slack_emoji.rb +0 -45
  68. data/test/test_faker_star_wars.rb +0 -74
  69. data/test/test_faker_street.rb +0 -58
  70. data/test/test_faker_superhero.rb +0 -16
  71. data/test/test_faker_team.rb +0 -25
  72. data/test/test_faker_time.rb +0 -93
  73. data/test/test_faker_university.rb +0 -20
  74. data/test/test_fi_locale.rb +0 -33
  75. data/test/test_flexible.rb +0 -62
  76. data/test/test_helper.rb +0 -12
  77. data/test/test_locale.rb +0 -47
  78. data/test/test_pl_locale.rb +0 -24
  79. data/test/test_placeholdit.rb +0 -92
  80. data/test/test_pt_locale.rb +0 -27
  81. data/test/test_sv_locale.rb +0 -28
  82. data/test/test_uk_locale.rb +0 -44
@@ -1,24 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestEnAuLocale < Test::Unit::TestCase
4
- def setup
5
- Faker::Config.locale = 'en-AU'
6
- end
7
-
8
- def teardown
9
- Faker::Config.locale = nil
10
- end
11
-
12
- def test_au_methods_with_en_au_locale
13
- assert Faker::Name.first_name.is_a? String
14
- assert Faker::Name.last_name.is_a? String
15
- assert Faker::Address.street_name.is_a? String
16
- assert Faker::Address.city.is_a? String
17
- end
18
-
19
- def test_aussie_mobiles_start_with_04
20
- mobile = Faker::PhoneNumber.cell_phone.gsub(/\D/,'')
21
- assert_equal '0', mobile[0]
22
- assert_equal '4', mobile[1]
23
- end
24
- end
@@ -1,25 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestEnAuOckerLocale < Test::Unit::TestCase
4
- def setup
5
- Faker::Config.locale = 'en-au-ocker'
6
- end
7
-
8
- def teardown
9
- Faker::Config.locale = nil
10
- end
11
-
12
- def test_au_ocker_methods_with_en_au_ocker_locale
13
- assert Faker::Name.first_name.is_a? String
14
- assert Faker::Name.last_name.is_a? String
15
- assert Faker::Name.ocker_first_name.is_a? String
16
- assert Faker::Address.street_name.is_a? String
17
- assert Faker::Address.city.is_a? String
18
- end
19
-
20
- def test_aussie_mobiles_start_with_04
21
- mobile = Faker::PhoneNumber.cell_phone.gsub(/\D/,'')
22
- assert_equal '0', mobile[0]
23
- assert_equal '4', mobile[1]
24
- end
25
- end
@@ -1,18 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestEnCaLocale < Test::Unit::TestCase
4
- def setup
5
- @previous_locale = Faker::Config.locale
6
- Faker::Config.locale = 'en-CA'
7
- end
8
-
9
- def teardown
10
- Faker::Config.locale = @previous_locale
11
- end
12
-
13
- def test_ca_postcode
14
- expected = /[A-VX-Y][0-9][A-CEJ-NPR-TV-Z] ?[0-9][A-CEJ-NPR-TV-Z][0-9]/
15
- assert_match(expected, Faker::Address.postcode)
16
- end
17
-
18
- end
@@ -1,35 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TesetEnLocale < Test::Unit::TestCase
4
- def setup
5
- Faker::Config.locale = nil
6
- end
7
-
8
- def teardown
9
- Faker::Config.locale = nil
10
- end
11
-
12
- def test_us_states_only_include_states
13
- assert_equal LoadedYaml['en']['address']['state'].size, 50
14
- assert_equal LoadedYaml['en']['address']['state'], ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming']
15
- assert_equal LoadedYaml['en']['address']['state_abbr'].size, 50
16
- assert_equal LoadedYaml['en']['address']['state_abbr'], ['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY']
17
- end
18
-
19
- def test_us_zip_codes
20
- Faker::Config.locale = 'en-US'
21
- expected = /\d{5}(\-\d{4})?/
22
- assert_match(expected, Faker::Address.zip_code)
23
- end
24
-
25
- def test_valid_id_number
26
- id_num = Faker::IDNumber.valid
27
- assert Faker::IDNumber::INVALID_SSN.none? { |regex| id_num =~ regex }
28
- end
29
-
30
- def test_invalid_id_number
31
- id_num = Faker::IDNumber.invalid
32
- assert Faker::IDNumber::INVALID_SSN.any? { |regex| id_num =~ regex }
33
- end
34
-
35
- end
@@ -1,33 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestEnNzLocale < Test::Unit::TestCase
4
- def setup
5
- Faker::Config.locale = 'en-NZ'
6
- end
7
-
8
- def teardown
9
- Faker::Config.locale = nil
10
- end
11
-
12
- def test_nz_methods_with_en_nz_locale
13
- assert Faker::Name.first_name.is_a? String
14
- assert Faker::Name.last_name.is_a? String
15
- assert Faker::Address.street_name.is_a? String
16
- assert Faker::Address.city.is_a? String
17
- end
18
-
19
- def test_nz_cellphones_start_with_02
20
- cellphone = Faker::PhoneNumber.cell_phone.gsub(/\D/,'')
21
- assert_equal '0', cellphone[0]
22
- assert_equal '2', cellphone[1]
23
- end
24
-
25
- def test_nz_is_default_country
26
- assert_equal 'New Zealand', Faker::Address.default_country
27
- end
28
-
29
- def test_regions_with_en_nz_locale
30
- assert Faker::Address.region.is_a? String
31
- assert Faker::Address.region_abbr.is_a? String
32
- end
33
- end
@@ -1,23 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestEnUgLocale < Test::Unit::TestCase
4
- def setup
5
- @previous_locale = Faker::Config.locale
6
- Faker::Config.locale = 'en-UG'
7
- end
8
-
9
- def teardown
10
- Faker::Config.locale = @previous_locale
11
- end
12
-
13
- def test_validity_of_phone_number
14
- validation_regex = /^((0)|(256)|(\+256))((39)|(41))\d{7}$/
15
- assert_match(validation_regex, Faker::PhoneNumber.phone_number.gsub(' ',''))
16
- end
17
-
18
- def test_validity_of_cell_phone
19
- validation_regex = /^((0)|(256)|(\+256))((70)|(71)|(72)|(74)|(75)|(77)|(78)|(79))\d{7}$/
20
- assert_match(validation_regex, Faker::PhoneNumber.cell_phone.gsub(' ',''))
21
- end
22
-
23
- end
@@ -1,89 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TesetEnUsLocale < Test::Unit::TestCase
4
- def setup
5
- Faker::Config.locale = nil
6
- end
7
-
8
- def teardown
9
- Faker::Config.locale = nil
10
- end
11
-
12
- def test_us_phone_methods_return_nil_for_nil_locale
13
- assert_nil Faker::PhoneNumber.area_code
14
- assert_nil Faker::PhoneNumber.exchange_code
15
- end
16
-
17
- def test_subscriber_number_method
18
- assert Faker::PhoneNumber.subscriber_number.is_a? String
19
- assert_equal Faker::PhoneNumber.subscriber_number.length, 4
20
- assert_equal Faker::PhoneNumber.subscriber_number(10).length, 10
21
- assert_equal Faker::PhoneNumber.method(:extension), Faker::PhoneNumber.method(:subscriber_number)
22
- end
23
-
24
- def test_us_phone_methods_with_en_us_locale
25
- Faker::Config.locale = 'en-US'
26
-
27
- assert Faker::PhoneNumber.area_code.is_a? String
28
- assert Faker::PhoneNumber.area_code.to_i.is_a? Integer
29
- assert_equal Faker::PhoneNumber.area_code.length, 3
30
-
31
- assert Faker::PhoneNumber.exchange_code.is_a? String
32
- assert Faker::PhoneNumber.exchange_code.to_i.is_a? Integer
33
- assert_equal Faker::PhoneNumber.exchange_code.length, 3
34
- end
35
-
36
- def test_validity_of_phone_method_output
37
- Faker::Config.locale = 'en-US'
38
-
39
- # got the following regex from http://stackoverflow.com/a/123666/1210055 as an expression of the NANP standard.
40
- us_number_validation_regex = /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/
41
- assert_match(us_number_validation_regex, Faker::PhoneNumber.phone_number)
42
- end
43
-
44
- def test_us_invalid_state_raises_exception
45
- Faker::Config.locale = 'en-US'
46
- assert_raise I18n::MissingTranslationData do Faker::Address.zip_code('NA') end
47
- end
48
-
49
- def test_us_zip_codes_match_state
50
-
51
- Faker::Config.locale = 'en-US'
52
-
53
- state_abbr = 'AZ'
54
- expected = /^850\d\d$/
55
- assert_match(expected, Faker::Address.zip_code(state_abbr))
56
-
57
- # disjointed ranges for these states
58
- # http://www.fincen.gov/forms/files/us_state_territory_zip_codes.pdf
59
- state_abbr = 'AR'
60
- expected = /^717\d\d$/
61
- assert_match(expected, Faker::Address.zip_code(state_abbr))
62
- state_abbr = 'GA'
63
- expected = /^301\d\d$/
64
- assert_match(expected, Faker::Address.zip_code(state_abbr))
65
- state_abbr = 'MA'
66
- expected = /^026\d\d$/
67
- assert_match(expected, Faker::Address.zip_code(state_abbr))
68
- state_abbr = 'NY'
69
- expected = /^122\d\d$/
70
- assert_match(expected, Faker::Address.zip_code(state_abbr))
71
- state_abbr = 'TX'
72
- expected = /^798\d\d$/
73
- assert_match(expected, Faker::Address.zip_code(state_abbr))
74
- state_abbr = 'VA'
75
- expected = /^222\d\d$/
76
- assert_match(expected, Faker::Address.zip_code(state_abbr))
77
-
78
- end
79
-
80
- def test_valid_id_number
81
- id_num = Faker::IDNumber.valid
82
- assert Faker::IDNumber::INVALID_SSN.none? { |regex| id_num =~ regex }
83
- end
84
-
85
- def test_invalid_id_number
86
- id_num = Faker::IDNumber.invalid
87
- assert Faker::IDNumber::INVALID_SSN.any? { |regex| id_num =~ regex }
88
- end
89
- end
@@ -1,34 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- LoadedEsYaml = ['en', 'es'].inject({}) do |h, locale|
4
- h[locale] = YAML.load_file(File.expand_path(File.dirname(__FILE__) + "/../lib/locales/#{locale}.yml"))[locale]['faker']
5
- h
6
- end
7
-
8
- class TestEsLocale < Test::Unit::TestCase
9
- def teardown
10
- Faker::Config.locale = nil
11
- end
12
-
13
- def test_locale_separate_from_i18n
14
- I18n.locale = :en
15
- Faker::Config.locale = :es
16
- assert Faker::Address.street_name.match(//)
17
- end
18
-
19
- def test_configured_locale_translation
20
- Faker::Config.locale = 'es'
21
- assert_equal Faker::Base.translate('faker.address.city_prefix').first, LoadedEsYaml['es']['address']['city_prefix'].first
22
- end
23
-
24
- def test_locale_override_when_calling_translate
25
- Faker::Config.locale = 'es'
26
- assert_equal Faker::Base.translate('faker.lorem.words', :locale => :en).first, LoadedEsYaml['en']['lorem']['words'].first
27
- end
28
-
29
- def test_translation_fallback
30
- Faker::Config.locale = 'es'
31
- assert_nil LoadedEsYaml['es']['company']['bs']
32
- assert_equal Faker::Base.translate('faker.company.bs'), LoadedEsYaml['en']['company']['bs']
33
- end
34
- end
@@ -1,29 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestFaker < Test::Unit::TestCase
4
-
5
- def setup
6
- end
7
-
8
- def test_numerify
9
- 100.times do
10
- assert Faker::Base.numerify('###').match(/[1-9]\d{2}/)
11
- end
12
- end
13
-
14
- def test_letterify
15
- assert Faker::Base.letterify('???').match(/[A-Z]{3}/)
16
- end
17
-
18
- def test_regexify
19
- {
20
- 'uk post code' => /^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$/,
21
- 'us phone' => /^(1-?)[2-8][0-1][0-9]-\d{3}-\d{4}$/
22
- }.each do |label, re|
23
- 10.times do
24
- assert re.match(result = Faker::Base.regexify(re)), "#{result} is not a match for #{label}"
25
- end
26
- end
27
- end
28
-
29
- end
@@ -1,12 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestFakerApp < Test::Unit::TestCase
4
- def setup
5
- @tester = Faker::App
6
- end
7
-
8
- def test_name
9
- assert @tester.author.match(/(\w+\.? ?){2,3}/)
10
- end
11
-
12
- end
@@ -1,41 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestFakerBeer < Test::Unit::TestCase
4
-
5
- def setup
6
- @tester = Faker::Beer
7
- end
8
-
9
- def test_name
10
- assert @tester.name.match(/(\w+\.? ?){2,3}/)
11
- end
12
-
13
- def test_style
14
- assert @tester.style.match(/(\w+\.? ?){2,3}/) # TODO
15
- end
16
-
17
- def test_hop
18
- assert @tester.hop.match(/(\w+\.? ?){2,3}/)
19
- end
20
-
21
- def test_yeast
22
- assert @tester.yeast.match(/(\w+\.? ?){2,3}/)
23
- end
24
-
25
- def test_malts
26
- assert @tester.malts.match(/(\w+\.? ?){2,3}/)
27
- end
28
-
29
- def test_ibu
30
- assert @tester.ibu.match(/(\w+\.? ?){2,3}/)
31
- end
32
-
33
- def test_alcohol
34
- assert @tester.alcohol.match(/(\w+\.? ?){2,3}/)
35
- end
36
-
37
- def test_blg
38
- assert @tester.blg.match(/(\w+\.? ?){2,3}/)
39
- end
40
-
41
- end
@@ -1,14 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestFakerBitcoin < Test::Unit::TestCase
4
-
5
- def test_address
6
- assert Faker::Bitcoin.address.match(/^[13][1-9A-Za-z][^OIl]{20,40}/)
7
- end
8
-
9
- def test_testnet_address
10
- assert_match(/\A[mn][1-9A-Za-z]{32,34}\Z/, Faker::Bitcoin.testnet_address)
11
- assert_not_match(/[OIl]/, Faker::Bitcoin.testnet_address)
12
- end
13
-
14
- end
@@ -1,24 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestFakerBook < Test::Unit::TestCase
4
-
5
- def setup
6
- @tester = Faker::Book
7
- end
8
-
9
- def test_title
10
- assert @tester.title.match(/(\w+\.? ?){2,3}/)
11
- end
12
-
13
- def test_author
14
- assert @tester.author.match(/(\w+\.? ?){2,3}/)
15
- end
16
-
17
- def test_publisher
18
- assert @tester.publisher.match(/(\w+\.? ?){2,3}/)
19
- end
20
-
21
- def test_genre
22
- assert @tester.genre.match(/(\w+\.? ?){2,3}/)
23
- end
24
- end
@@ -1,23 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
- require 'minitest/mock'
3
-
4
- class TestFakerBoolean < Test::Unit::TestCase
5
- def setup
6
- @tester = Faker::Boolean
7
- end
8
-
9
- def test_boolean
10
- assert [true, false].include?(@tester.boolean)
11
- end
12
-
13
- def test_distribution
14
- true_ratio = rand.round(1)
15
- true_counter = 0
16
-
17
- 10000.times do
18
- true_counter += 1 if @tester.boolean(true_ratio)
19
- end
20
-
21
- assert_in_delta true_ratio, (true_counter/10000.0), 0.01
22
- end
23
- end
@@ -1,34 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
-
3
- class TestFakerBusiness < Test::Unit::TestCase
4
-
5
- def setup
6
- @tester = Faker::Business
7
- @credit_card_number_list = I18n.translate('faker.business.credit_card_numbers')
8
- @credit_card_types = I18n.translate('faker.business.credit_card_types')
9
- @minimum_expiry_date = ::Date.today + 365
10
- @maximum_expiry_date = ::Date.today + (365 * 4)
11
- end
12
-
13
- def test_credit_card_number
14
- number1 = @tester.credit_card_number
15
- number2 = @tester.credit_card_number
16
- assert @credit_card_number_list.include?(number1)
17
- assert @credit_card_number_list.include?(number2)
18
- end
19
-
20
- def test_credit_card_expiry_date
21
- date1 = @tester.credit_card_expiry_date
22
- date2 = @tester.credit_card_expiry_date
23
- assert date1.between?(@minimum_expiry_date, @maximum_expiry_date)
24
- assert date2.between?(@minimum_expiry_date, @maximum_expiry_date)
25
- end
26
-
27
- def test_credit_card_type
28
- type1 = @tester.credit_card_type
29
- type2 = @tester.credit_card_type
30
- assert @credit_card_types.include?(type1)
31
- assert @credit_card_types.include?(type2)
32
- end
33
-
34
- end