forgery 0.2.2 → 0.3.0
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.
- data/.gitignore +3 -0
- data/LICENSE +20 -0
- data/README.markdown +13 -13
- data/Rakefile +50 -0
- data/VERSION.yml +3 -2
- data/forgery.gemspec +120 -0
- data/init.rb +1 -0
- data/lib/forgery.rb +14 -28
- data/lib/forgery/dictionaries.rb +24 -0
- data/lib/{dictionaries → forgery/dictionaries}/cities +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/colors +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/company_names +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/countries +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/female_first_names +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/frequencies +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/genders +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/languages +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/last_names +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/lorem_ipsum +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/male_first_names +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/name_suffixes +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/name_titles +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/province_abbrevs +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/provinces +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/races +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/shirt_sizes +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/state_abbrevs +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/states +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/street_suffixes +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/streets +0 -0
- data/lib/{dictionaries → forgery/dictionaries}/top_level_domains +0 -0
- data/lib/{extensions → forgery/extensions}/array.rb +0 -0
- data/lib/{extensions → forgery/extensions}/hash.rb +0 -0
- data/lib/{extensions → forgery/extensions}/range.rb +0 -0
- data/lib/{extensions → forgery/extensions}/string.rb +1 -0
- data/lib/forgery/file_reader.rb +69 -0
- data/lib/forgery/forgery.rb +23 -0
- data/lib/{forgeries/address_forgery.rb → forgery/forgery/address.rb} +27 -25
- data/lib/{forgeries/basic_forgery.rb → forgery/forgery/basic.rb} +41 -1
- data/lib/{forgeries/internet_forgery.rb → forgery/forgery/internet.rb} +4 -2
- data/lib/{forgeries/lorem_ipsum_forgery.rb → forgery/forgery/lorem_ipsum.rb} +1 -2
- data/lib/{forgeries/monetary_forgery.rb → forgery/forgery/monetary.rb} +3 -1
- data/lib/{forgeries/name_forgery.rb → forgery/forgery/name.rb} +2 -1
- data/lib/{forgeries/personal_forgery.rb → forgery/forgery/personal.rb} +2 -1
- data/lib/forgery/forgery_api.rb +9 -0
- data/lib/forgery/formats.rb +24 -0
- data/lib/{formats → forgery/formats}/phone +0 -0
- data/lib/{formats → forgery/formats}/street_number +0 -0
- data/lib/{formats → forgery/formats}/zip +0 -0
- data/spec/dictionaries_spec.rb +4 -4
- data/spec/file_reader_spec.rb +3 -3
- data/spec/{forgeries/address_forgery_spec.rb → forgery/address_spec.rb} +13 -13
- data/spec/{forgeries/basic_forgery_spec.rb → forgery/basic_spec.rb} +51 -51
- data/spec/{forgeries/internet_forgery_spec.rb → forgery/internet_spec.rb} +6 -6
- data/spec/{forgeries/lorem_ipsum_forgery_spec.rb → forgery/lorem_ipsum_spec.rb} +26 -26
- data/spec/{forgeries/monetary_forgery_spec.rb → forgery/monetary_spec.rb} +1 -1
- data/spec/{forgeries/name_forgery_spec.rb → forgery/name_spec.rb} +1 -1
- data/spec/{forgeries/personal_forgery_spec.rb → forgery/personal_spec.rb} +3 -3
- data/spec/forgery_spec.rb +33 -6
- data/spec/formats_spec.rb +4 -4
- metadata +78 -57
- data/lib/dictionaries.rb +0 -24
- data/lib/file_reader.rb +0 -53
- data/lib/formats.rb +0 -24
data/spec/forgery_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
require 'pathname'
|
2
3
|
|
3
4
|
describe Forgery do
|
4
5
|
it "should load a dictionary when it is requested" do
|
@@ -22,21 +23,47 @@ describe Forgery do
|
|
22
23
|
end
|
23
24
|
|
24
25
|
it "should accept a symbol and return the appropriate forgery class" do
|
25
|
-
Forgery(:address).should ==
|
26
|
-
Forgery(:basic).should ==
|
27
|
-
Forgery(:internet).should ==
|
26
|
+
Forgery(:address).should == Forgery::Address
|
27
|
+
Forgery(:basic).should == Forgery::Basic
|
28
|
+
Forgery(:internet).should == Forgery::Internet
|
28
29
|
end
|
29
30
|
|
30
31
|
it "should accept two symbols, finding the right class and calling the appropriate method" do
|
31
|
-
|
32
|
+
Forgery::Address.should_receive(:street_name)
|
32
33
|
Forgery(:address, :street_name)
|
33
34
|
|
34
|
-
|
35
|
+
Forgery::Name.should_receive(:full_name)
|
35
36
|
Forgery(:name, :full_name)
|
36
37
|
end
|
37
38
|
|
38
39
|
it "should accept two symbols and arguments, passing them along to the appropriate method" do
|
39
|
-
|
40
|
+
Forgery::LoremIpsum.should_receive(:text).with(:sentences, 2)
|
40
41
|
Forgery(:lorem_ipsum, :text, :sentences, 2)
|
41
42
|
end
|
43
|
+
|
44
|
+
it "should return the rails root path if RAILS_ROOT is defined" do
|
45
|
+
RAILS_ROOT = '/path/from/rails/root/const'
|
46
|
+
Forgery.rails_root.should == '/path/from/rails/root/const'
|
47
|
+
Object.instance_eval { remove_const(:RAILS_ROOT) }
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return the rails root path as a string if Rails.root is defined" do
|
51
|
+
Rails = Object.new
|
52
|
+
Rails.stub!(:root).and_return(Pathname.new('/path/from/rails/dot/root'))
|
53
|
+
Forgery.rails_root.should == '/path/from/rails/dot/root'
|
54
|
+
Object.instance_eval { remove_const(:Rails) }
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should return nil when RAILS_ROOT and Rails.root are not defined" do
|
58
|
+
Forgery.rails_root.should be_nil
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should not be a rails environment when there is not a rails_root" do
|
62
|
+
Forgery.rails?.should be_false
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should be a rails environment when there is a rails_root" do
|
66
|
+
Forgery.stub!(:rails?).and_return(true)
|
67
|
+
Forgery.rails?.should be_true
|
68
|
+
end
|
42
69
|
end
|
data/spec/formats_spec.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
2
|
|
3
|
-
describe Formats do
|
3
|
+
describe Forgery::Formats do
|
4
4
|
it "should check if the dictionary is loaded" do
|
5
|
-
formats = Formats.new
|
5
|
+
formats = Forgery::Formats.new
|
6
6
|
|
7
7
|
formats[:phone]
|
8
8
|
|
@@ -10,7 +10,7 @@ describe Formats do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should load a dictionary when called by the key" do
|
13
|
-
formats = Formats.new
|
13
|
+
formats = Forgery::Formats.new
|
14
14
|
|
15
15
|
formats.reset!
|
16
16
|
|
@@ -22,7 +22,7 @@ describe Formats do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should clear the loaded formats when calling reset!" do
|
25
|
-
formats = Formats.new
|
25
|
+
formats = Forgery::Formats.new
|
26
26
|
|
27
27
|
formats[:phone]
|
28
28
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forgery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Sutton
|
@@ -9,75 +9,83 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-13 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description:
|
16
|
+
description: Easy and customizable generation of forged data. Can be used as a gem or a rails plugin. Includes rails generators for creating your own forgeries.
|
17
17
|
email: nate@sevenwire.com
|
18
18
|
executables: []
|
19
19
|
|
20
20
|
extensions: []
|
21
21
|
|
22
|
-
extra_rdoc_files:
|
23
|
-
|
22
|
+
extra_rdoc_files:
|
23
|
+
- LICENSE
|
24
|
+
- README.markdown
|
24
25
|
files:
|
26
|
+
- .gitignore
|
27
|
+
- LICENSE
|
25
28
|
- README.markdown
|
29
|
+
- Rakefile
|
26
30
|
- VERSION.yml
|
27
|
-
-
|
31
|
+
- forgery.gemspec
|
28
32
|
- generators/forgery/USAGE
|
29
|
-
-
|
30
|
-
-
|
31
|
-
- lib/dictionaries/company_names
|
32
|
-
- lib/dictionaries/countries
|
33
|
-
- lib/dictionaries/female_first_names
|
34
|
-
- lib/dictionaries/frequencies
|
35
|
-
- lib/dictionaries/genders
|
36
|
-
- lib/dictionaries/languages
|
37
|
-
- lib/dictionaries/last_names
|
38
|
-
- lib/dictionaries/lorem_ipsum
|
39
|
-
- lib/dictionaries/male_first_names
|
40
|
-
- lib/dictionaries/name_suffixes
|
41
|
-
- lib/dictionaries/name_titles
|
42
|
-
- lib/dictionaries/province_abbrevs
|
43
|
-
- lib/dictionaries/provinces
|
44
|
-
- lib/dictionaries/races
|
45
|
-
- lib/dictionaries/shirt_sizes
|
46
|
-
- lib/dictionaries/state_abbrevs
|
47
|
-
- lib/dictionaries/states
|
48
|
-
- lib/dictionaries/street_suffixes
|
49
|
-
- lib/dictionaries/streets
|
50
|
-
- lib/dictionaries/top_level_domains
|
51
|
-
- lib/dictionaries.rb
|
52
|
-
- lib/extensions/array.rb
|
53
|
-
- lib/extensions/hash.rb
|
54
|
-
- lib/extensions/range.rb
|
55
|
-
- lib/extensions/string.rb
|
56
|
-
- lib/file_reader.rb
|
57
|
-
- lib/forgeries/address_forgery.rb
|
58
|
-
- lib/forgeries/basic_forgery.rb
|
59
|
-
- lib/forgeries/internet_forgery.rb
|
60
|
-
- lib/forgeries/lorem_ipsum_forgery.rb
|
61
|
-
- lib/forgeries/monetary_forgery.rb
|
62
|
-
- lib/forgeries/name_forgery.rb
|
63
|
-
- lib/forgeries/personal_forgery.rb
|
33
|
+
- generators/forgery/forgery_generator.rb
|
34
|
+
- init.rb
|
64
35
|
- lib/forgery.rb
|
65
|
-
- lib/
|
66
|
-
- lib/
|
67
|
-
- lib/
|
68
|
-
- lib/
|
36
|
+
- lib/forgery/dictionaries.rb
|
37
|
+
- lib/forgery/dictionaries/cities
|
38
|
+
- lib/forgery/dictionaries/colors
|
39
|
+
- lib/forgery/dictionaries/company_names
|
40
|
+
- lib/forgery/dictionaries/countries
|
41
|
+
- lib/forgery/dictionaries/female_first_names
|
42
|
+
- lib/forgery/dictionaries/frequencies
|
43
|
+
- lib/forgery/dictionaries/genders
|
44
|
+
- lib/forgery/dictionaries/languages
|
45
|
+
- lib/forgery/dictionaries/last_names
|
46
|
+
- lib/forgery/dictionaries/lorem_ipsum
|
47
|
+
- lib/forgery/dictionaries/male_first_names
|
48
|
+
- lib/forgery/dictionaries/name_suffixes
|
49
|
+
- lib/forgery/dictionaries/name_titles
|
50
|
+
- lib/forgery/dictionaries/province_abbrevs
|
51
|
+
- lib/forgery/dictionaries/provinces
|
52
|
+
- lib/forgery/dictionaries/races
|
53
|
+
- lib/forgery/dictionaries/shirt_sizes
|
54
|
+
- lib/forgery/dictionaries/state_abbrevs
|
55
|
+
- lib/forgery/dictionaries/states
|
56
|
+
- lib/forgery/dictionaries/street_suffixes
|
57
|
+
- lib/forgery/dictionaries/streets
|
58
|
+
- lib/forgery/dictionaries/top_level_domains
|
59
|
+
- lib/forgery/extensions/array.rb
|
60
|
+
- lib/forgery/extensions/hash.rb
|
61
|
+
- lib/forgery/extensions/range.rb
|
62
|
+
- lib/forgery/extensions/string.rb
|
63
|
+
- lib/forgery/file_reader.rb
|
64
|
+
- lib/forgery/forgery.rb
|
65
|
+
- lib/forgery/forgery/address.rb
|
66
|
+
- lib/forgery/forgery/basic.rb
|
67
|
+
- lib/forgery/forgery/internet.rb
|
68
|
+
- lib/forgery/forgery/lorem_ipsum.rb
|
69
|
+
- lib/forgery/forgery/monetary.rb
|
70
|
+
- lib/forgery/forgery/name.rb
|
71
|
+
- lib/forgery/forgery/personal.rb
|
72
|
+
- lib/forgery/forgery_api.rb
|
73
|
+
- lib/forgery/formats.rb
|
74
|
+
- lib/forgery/formats/phone
|
75
|
+
- lib/forgery/formats/street_number
|
76
|
+
- lib/forgery/formats/zip
|
69
77
|
- spec/dictionaries_spec.rb
|
70
78
|
- spec/extensions/array_spec.rb
|
71
79
|
- spec/extensions/range_spec.rb
|
72
80
|
- spec/extensions/string_spec.rb
|
73
81
|
- spec/file_reader_spec.rb
|
74
|
-
- spec/
|
75
|
-
- spec/
|
76
|
-
- spec/
|
77
|
-
- spec/
|
78
|
-
- spec/
|
79
|
-
- spec/
|
80
|
-
- spec/
|
82
|
+
- spec/forgery/address_spec.rb
|
83
|
+
- spec/forgery/basic_spec.rb
|
84
|
+
- spec/forgery/internet_spec.rb
|
85
|
+
- spec/forgery/lorem_ipsum_spec.rb
|
86
|
+
- spec/forgery/monetary_spec.rb
|
87
|
+
- spec/forgery/name_spec.rb
|
88
|
+
- spec/forgery/personal_spec.rb
|
81
89
|
- spec/forgery_spec.rb
|
82
90
|
- spec/formats_spec.rb
|
83
91
|
- spec/spec_helper.rb
|
@@ -87,7 +95,6 @@ licenses: []
|
|
87
95
|
|
88
96
|
post_install_message:
|
89
97
|
rdoc_options:
|
90
|
-
- --inline-source
|
91
98
|
- --charset=UTF-8
|
92
99
|
require_paths:
|
93
100
|
- lib
|
@@ -108,7 +115,21 @@ requirements: []
|
|
108
115
|
rubyforge_project:
|
109
116
|
rubygems_version: 1.3.5
|
110
117
|
signing_key:
|
111
|
-
specification_version:
|
112
|
-
summary:
|
113
|
-
test_files:
|
114
|
-
|
118
|
+
specification_version: 3
|
119
|
+
summary: Easy and customizable generation of forged data.
|
120
|
+
test_files:
|
121
|
+
- spec/dictionaries_spec.rb
|
122
|
+
- spec/extensions/array_spec.rb
|
123
|
+
- spec/extensions/range_spec.rb
|
124
|
+
- spec/extensions/string_spec.rb
|
125
|
+
- spec/file_reader_spec.rb
|
126
|
+
- spec/forgery/address_spec.rb
|
127
|
+
- spec/forgery/basic_spec.rb
|
128
|
+
- spec/forgery/internet_spec.rb
|
129
|
+
- spec/forgery/lorem_ipsum_spec.rb
|
130
|
+
- spec/forgery/monetary_spec.rb
|
131
|
+
- spec/forgery/name_spec.rb
|
132
|
+
- spec/forgery/personal_spec.rb
|
133
|
+
- spec/forgery_spec.rb
|
134
|
+
- spec/formats_spec.rb
|
135
|
+
- spec/spec_helper.rb
|
data/lib/dictionaries.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
class Dictionaries
|
2
|
-
|
3
|
-
def initialize
|
4
|
-
@dictionaries = {}
|
5
|
-
end
|
6
|
-
|
7
|
-
def [](key)
|
8
|
-
symbolized_key = key.to_sym
|
9
|
-
if loaded?(symbolized_key)
|
10
|
-
@dictionaries[symbolized_key]
|
11
|
-
else
|
12
|
-
@dictionaries[symbolized_key] = FileReader.read_dictionary(symbolized_key)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def loaded?(key)
|
17
|
-
@dictionaries.has_key?(key.to_sym)
|
18
|
-
end
|
19
|
-
|
20
|
-
def reset!
|
21
|
-
@dictionaries = {}
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
data/lib/file_reader.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
class FileReader
|
2
|
-
|
3
|
-
def self.read_dictionary(dictionary)
|
4
|
-
read_file(path_to_dictionary(dictionary))
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.read_format(format)
|
8
|
-
read_file(path_to_format(format))
|
9
|
-
end
|
10
|
-
|
11
|
-
protected
|
12
|
-
|
13
|
-
def self.read_file(file)
|
14
|
-
lines = []
|
15
|
-
IO.foreach(file) do |line|
|
16
|
-
lines << line.chomp unless line.chomp == ''
|
17
|
-
end
|
18
|
-
lines
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.path_to_format(format)
|
22
|
-
if external_path_to_format(format) && File.exists?(external_path_to_format(format))
|
23
|
-
external_path_to_format(format)
|
24
|
-
else
|
25
|
-
internal_path_to_format(format)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.external_path_to_format(format)
|
30
|
-
RAILS_ROOT + '/lib/forgery/formats/' + format.to_s if defined?(RAILS_ROOT)
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.internal_path_to_format(format)
|
34
|
-
File.dirname(__FILE__) + '/formats/' + format.to_s
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.path_to_dictionary(dictionary)
|
38
|
-
if external_path_to_dictionary(dictionary) && File.exists?(external_path_to_dictionary(dictionary))
|
39
|
-
external_path_to_dictionary(dictionary)
|
40
|
-
else
|
41
|
-
internal_path_to_dictionary(dictionary)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.external_path_to_dictionary(dictionary)
|
46
|
-
RAILS_ROOT + '/lib/forgery/dictionaries/' + dictionary.to_s if defined?(RAILS_ROOT)
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.internal_path_to_dictionary(dictionary)
|
50
|
-
File.dirname(__FILE__) + '/dictionaries/' + dictionary.to_s
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
data/lib/formats.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
class Formats
|
2
|
-
|
3
|
-
def initialize
|
4
|
-
@formats = {}
|
5
|
-
end
|
6
|
-
|
7
|
-
def [](key)
|
8
|
-
symbolized_key = key.to_sym
|
9
|
-
if @formats.has_key?(symbolized_key)
|
10
|
-
@formats[symbolized_key]
|
11
|
-
else
|
12
|
-
@formats[symbolized_key] = FileReader.read_format(symbolized_key)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def loaded?(key)
|
17
|
-
@formats.has_key?(key.to_sym)
|
18
|
-
end
|
19
|
-
|
20
|
-
def reset!
|
21
|
-
@formats = {}
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|