ffaker 0.3.2

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.
@@ -0,0 +1,37 @@
1
+ module Faker
2
+ module PhoneNumber
3
+ extend ModuleUtils
4
+ extend self
5
+
6
+ def phone_number
7
+ Faker.numerify(FORMATS.rand)
8
+ end
9
+
10
+ def self.short_phone_number
11
+ Faker.numerify(FORMATS.first.dup)
12
+ end
13
+
14
+ FORMATS = k [
15
+ '###-###-####',
16
+ '(###)###-####',
17
+ '1-###-###-####',
18
+ '###.###.####',
19
+ '###-###-####',
20
+ '(###)###-####',
21
+ '1-###-###-####',
22
+ '###.###.####',
23
+ '###-###-#### x###',
24
+ '(###)###-#### x###',
25
+ '1-###-###-#### x###',
26
+ '###.###.#### x###',
27
+ '###-###-#### x####',
28
+ '(###)###-#### x####',
29
+ '1-###-###-#### x####',
30
+ '###.###.#### x####',
31
+ '###-###-#### x#####',
32
+ '(###)###-#### x#####',
33
+ '1-###-###-#### x#####',
34
+ '###.###.#### x#####'
35
+ ]
36
+ end
37
+ end
@@ -0,0 +1,44 @@
1
+ module Faker
2
+ module ArrayUtils
3
+ def self.const_array(argument)
4
+ array = argument.is_a?(Array) ? argument : argument.to_a
5
+ array.extend ArrayUtils
6
+ freeze_all(array)
7
+ end
8
+
9
+ def self.random_pick(array, n)
10
+ indexes = (0...array.length).sort_by{Kernel.rand}[0...n]
11
+ indexes.map { |n| array[n].dup }
12
+ end
13
+
14
+ def self.rand(array)
15
+ array[Kernel.rand(array.length)].dup
16
+ end
17
+
18
+ def self.freeze_all(array)
19
+ array.each { |e| e.freeze }
20
+ array.freeze
21
+ array
22
+ end
23
+
24
+ def self.shuffle(array)
25
+ array.sort_by{Kernel.rand}
26
+ end
27
+
28
+ def random_pick(n)
29
+ ArrayUtils.random_pick(self, n)
30
+ end
31
+
32
+ def rand
33
+ ArrayUtils.rand(self)
34
+ end
35
+
36
+ def freeze_all
37
+ ArrayUtils.freeze_all(self)
38
+ end
39
+
40
+ def shuffle
41
+ ArrayUtils.shuffle(self)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,9 @@
1
+ require 'faker/utils/array_utils'
2
+
3
+ module Faker
4
+ module ModuleUtils
5
+ def k(arg)
6
+ Faker::ArrayUtils.const_array(arg)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Faker #:nodoc:
2
+ module VERSION #:nodoc:
3
+ MAJOR = 0
4
+ MINOR = 3
5
+ TINY = 2
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.')
8
+ end
9
+ end
@@ -0,0 +1 @@
1
+ require 'faker'
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../lib/faker'
2
+ require 'benchmark'
3
+
4
+ N = 1_000_000
5
+
6
+ Benchmark.bm do |rep|
7
+ rep.report("generating #{ N } names") do
8
+ N.times do
9
+ Faker::Name.name
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ ruby-prof -pcall_tree -fprofile.data profiling.rb
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/../lib/faker'
2
+
3
+ N = 1_000_000
4
+
5
+ N.times do
6
+ Faker::Name.name
7
+ end
@@ -0,0 +1,11 @@
1
+ require 'test/unit'
2
+
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
+ require 'ffaker'
6
+
7
+ class Test::Unit::TestCase
8
+ def self.it(description, &block)
9
+ define_method("test_#{ description }", &block)
10
+ end
11
+ end
@@ -0,0 +1,56 @@
1
+ require 'helper'
2
+
3
+
4
+ class TestAddress < Test::Unit::TestCase
5
+ def test_city
6
+ assert_match /[ a-z]+/, Faker::Address.city
7
+ end
8
+
9
+ def test_city_prefix
10
+ assert_match /[ a-z]/, Faker::Address.city_prefix
11
+ end
12
+
13
+ def test_city_suffix
14
+ assert_match /[ a-z]/, Faker::Address.city_suffix
15
+ end
16
+
17
+ def test_secondary_address
18
+ assert_match /[ a-z]/, Faker::Address.secondary_address
19
+ end
20
+
21
+ def test_street_address
22
+ assert_match /[ a-z]/, Faker::Address.street_address
23
+ end
24
+
25
+ def test_street_name
26
+ assert_match /[ a-z]/, Faker::Address.street_name
27
+ end
28
+
29
+ def test_street_suffix
30
+ assert_match /[ a-z]/, Faker::Address.street_suffix
31
+ end
32
+
33
+ def test_uk_country
34
+ assert_match /[ a-z]/, Faker::Address.uk_country
35
+ end
36
+
37
+ def test_uk_county
38
+ assert_match /[ a-z]/, Faker::Address.uk_county
39
+ end
40
+
41
+ def test_uk_postcode
42
+ assert_match /[ a-z]/, Faker::Address.uk_postcode
43
+ end
44
+
45
+ def test_us_state
46
+ assert_match /[ a-z]/, Faker::Address.us_state
47
+ end
48
+
49
+ def test_us_state_abbr
50
+ assert_match /[A-Z]/, Faker::Address.us_state_abbr
51
+ end
52
+
53
+ def test_zip_code
54
+ assert_match /[0-9]/, Faker::Address.zip_code
55
+ end
56
+ end
@@ -0,0 +1,50 @@
1
+ require 'helper'
2
+ require 'set'
3
+
4
+ class TestArrayUtils < Test::Unit::TestCase
5
+ def setup
6
+ @array = Faker::ArrayUtils.const_array("a".."c")
7
+ @elems = Set.new("a".."c")
8
+ end
9
+
10
+ it "provides a way of freezing the elements and itself" do
11
+ assert @array.respond_to?(:freeze_all)
12
+ @array.freeze_all
13
+ assert @array.frozen?
14
+ @array.each { |e| assert e.frozen? }
15
+ end
16
+
17
+ it "provides a way of getting a random element" do
18
+ set = Set.new
19
+ 1000.times { set << @array.rand }
20
+ assert set == @elems
21
+ end
22
+
23
+ it "provides a way of getting n random elements" do
24
+ assert_equal @array.random_pick(3).sort, @array.sort
25
+
26
+ 1.upto(3) do |n|
27
+ 1000.times do
28
+ new_arr = @array.random_pick(n)
29
+ assert_equal n, new_arr.length
30
+ new_arr.each do |e|
31
+ assert @elems.include? e
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ it "provides a way of shuffling the array" do
38
+ assert_equal @array.shuffle.sort, @array.sort
39
+
40
+ different_arrangements = 0
41
+
42
+ 1000.times do
43
+ new_arr = @array.shuffle
44
+ assert new_arr.to_set == @elems
45
+ different_arrangements += 1 if new_arr != @array
46
+ end
47
+
48
+ assert different_arrangements > 0
49
+ end
50
+ end
@@ -0,0 +1,19 @@
1
+ require 'helper'
2
+
3
+ class TestCompany < Test::Unit::TestCase
4
+ def test_bs
5
+ assert_match /[ a-z]+/, Faker::Company.bs
6
+ end
7
+
8
+ def test_catch_phrase
9
+ assert_match /[ a-z]+/, Faker::Company.catch_phrase
10
+ end
11
+
12
+ def test_name
13
+ assert_match /[ a-z]+/, Faker::Company.name
14
+ end
15
+
16
+ def test_suffix
17
+ assert_match /[ a-z]+/, Faker::Company.suffix
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ require 'helper'
2
+
3
+ class TestFaker < Test::Unit::TestCase
4
+ def test_numerify
5
+ assert Faker.numerify('###').match(/\d{3}/)
6
+ end
7
+
8
+ def test_letterify
9
+ assert Faker.letterify('???').match(/[a-z]{3}/)
10
+ end
11
+
12
+ def test_bothify
13
+ assert Faker.bothify('???###').match(/[a-z]{3}\d{3}/)
14
+ end
15
+ end
@@ -0,0 +1,35 @@
1
+ require 'helper'
2
+
3
+ class TestFakerInternet < Test::Unit::TestCase
4
+ def setup
5
+ @tester = Faker::Internet
6
+ end
7
+
8
+ def test_email
9
+ assert @tester.email.match(/.+@.+\.\w+/)
10
+ end
11
+
12
+ def test_free_email
13
+ assert @tester.free_email.match(/.+@(gmail|hotmail|yahoo)\.com/)
14
+ end
15
+
16
+ def test_user_name
17
+ assert @tester.user_name.match(/[a-z]+((_|\.)[a-z]+)?/)
18
+ end
19
+
20
+ def test_user_name_with_arg
21
+ assert @tester.user_name('bo peep').match(/(bo(_|\.)peep|peep(_|\.)bo)/)
22
+ end
23
+
24
+ def test_domain_name
25
+ assert @tester.domain_name.match(/\w+\.\w+/)
26
+ end
27
+
28
+ def test_domain_word
29
+ assert @tester.domain_word.match(/^\w+$/)
30
+ end
31
+
32
+ def test_domain_suffix
33
+ assert @tester.domain_suffix.match(/^\w+(\.\w+)?/)
34
+ end
35
+ end
@@ -0,0 +1,19 @@
1
+ require 'helper'
2
+
3
+ class TestFakerName < Test::Unit::TestCase
4
+ def setup
5
+ @tester = Faker::Name
6
+ end
7
+
8
+ def test_name
9
+ assert @tester.name.match(/(\w+\.? ?){2,3}/)
10
+ end
11
+
12
+ def test_prefix
13
+ assert @tester.prefix.match(/[A-Z][a-z]+\.?/)
14
+ end
15
+
16
+ def test_suffix
17
+ assert @tester.suffix.match(/[A-Z][a-z]*\.?/)
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ require 'helper'
2
+
3
+ class TestLorem < Test::Unit::TestCase
4
+
5
+ def test_paragraph
6
+ assert_match /[ a-z]+/, Faker::Lorem.paragraph
7
+ end
8
+
9
+ def test_sentence
10
+ assert_match /[ a-z]+/, Faker::Lorem.sentence
11
+ end
12
+
13
+ def test_paragraphs
14
+ assert_match /[ a-z]+/, Faker::Lorem.paragraphs.join(" ")
15
+ end
16
+
17
+ def test_sentences
18
+ assert_match /[ a-z]+/, Faker::Lorem.sentences.join(" ")
19
+ end
20
+
21
+ def test_words
22
+ assert_match /[ a-z]+/, Faker::Lorem.words.join(" ")
23
+ end
24
+ end
@@ -0,0 +1,12 @@
1
+ require 'helper'
2
+
3
+ class TestModuleUtils < Test::Unit::TestCase
4
+ it "provides a k method for generating constant arrays" do
5
+ obj = Object.new
6
+ obj.extend Faker::ModuleUtils
7
+ result = obj.k ["1","2","3"]
8
+
9
+ assert result.frozen?
10
+ result.each {|e| assert e.frozen? }
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'helper'
2
+
3
+ class TestPhoneNumer < Test::Unit::TestCase
4
+ def test_phone_number
5
+ assert_match /\d{3}[. -]\d{3}/, Faker::PhoneNumber.phone_number
6
+ end
7
+
8
+ def test_short_phone_number
9
+ assert_match /\d{3}-\d{3}-\d{4}/, Faker::PhoneNumber.short_phone_number
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ffaker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2
5
+ platform: ruby
6
+ authors:
7
+ - Emmanuel Oga
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-15 00:00:00 -03:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Faker refactored
17
+ email: EmmanuelOga@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - LICENSE
24
+ - README.rdoc
25
+ - README.txt
26
+ files:
27
+ - .document
28
+ - .gitignore
29
+ - History.txt
30
+ - LICENSE
31
+ - README.rdoc
32
+ - README.txt
33
+ - Rakefile
34
+ - VERSION
35
+ - lib/faker.rb
36
+ - lib/faker/address.rb
37
+ - lib/faker/company.rb
38
+ - lib/faker/internet.rb
39
+ - lib/faker/lorem.rb
40
+ - lib/faker/name.rb
41
+ - lib/faker/phone_number.rb
42
+ - lib/faker/utils/array_utils.rb
43
+ - lib/faker/utils/module_utils.rb
44
+ - lib/faker/version.rb
45
+ - lib/ffaker.rb
46
+ - scripts/benchmark.rb
47
+ - scripts/profile.sh
48
+ - scripts/profiling.rb
49
+ - test/helper.rb
50
+ - test/test_address.rb
51
+ - test/test_array_utils.rb
52
+ - test/test_company.rb
53
+ - test/test_faker.rb
54
+ - test/test_faker_internet.rb
55
+ - test/test_faker_name.rb
56
+ - test/test_lorem.rb
57
+ - test/test_module_utils.rb
58
+ - test/test_phone_number.rb
59
+ has_rdoc: true
60
+ homepage: http://github.com/EmmanuelOga/ffaker
61
+ licenses: []
62
+
63
+ post_install_message:
64
+ rdoc_options:
65
+ - --charset=UTF-8
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: "0"
73
+ version:
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ version:
80
+ requirements: []
81
+
82
+ rubyforge_project:
83
+ rubygems_version: 1.3.5
84
+ signing_key:
85
+ specification_version: 3
86
+ summary: Faker, only cleaner and faster
87
+ test_files:
88
+ - test/test_faker_name.rb
89
+ - test/test_lorem.rb
90
+ - test/test_phone_number.rb
91
+ - test/test_array_utils.rb
92
+ - test/test_address.rb
93
+ - test/test_faker_internet.rb
94
+ - test/test_faker.rb
95
+ - test/test_module_utils.rb
96
+ - test/helper.rb
97
+ - test/test_company.rb