factory 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: af7197952cadafdfba8350d996ceeb68ac7a36ac
4
+ data.tar.gz: e8ac58587592718d33024f25f605fe79cae03c7d
5
+ SHA512:
6
+ metadata.gz: 99f06461fb2a002858d3be54f6654f50892e96d2188c7492f0d5c2f91119d42598ac124b15b61bf26a73d8907761508cda7fb32a2cfdeca6ed85d9ced9bcb5d6
7
+ data.tar.gz: 45b57955dd35837f63a9ba1c4f4ae339ef0a3ee3012937e4398d0401e2ae92c947f98a2abe27e4317f5e6425ee9975a9dce1f168f42253c150ba46e6964b3f6b
@@ -0,0 +1,7 @@
1
+ *.sw[po]
2
+ Gemfile.lock
3
+ /html
4
+ /garbage
5
+ /tmp
6
+ /temp
7
+ /trash
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ # A sample Gemfile
2
+ source "https://rubygems.org"
3
+
4
+ # gem "rails"
@@ -0,0 +1,92 @@
1
+ Welcome to the Factory!
2
+
3
+ =Overview
4
+
5
+ The Factory mixin provides a robust Factory implementation. Overrides are
6
+ automatically registered upon sub-classing. Manual override and disables are
7
+ available if auto-registration does not result in the desired factory overrides.
8
+ Manual overrides are available at the class and global granularities. Method arguments
9
+ can be passed in as strings or symbols so that overrides can be set even before classes
10
+ have been defined.
11
+
12
+ =Usage
13
+
14
+ ==Using the Factory
15
+
16
+ The Factory module should be included in the classes which you want to provide factory
17
+ overrides.
18
+ class ParentClass
19
+ include Factory
20
+ def initialize arg=nil
21
+ @arg = arg
22
+ end
23
+ end
24
+ Inheriting from this class will automatically register the sub-class as the override
25
+ of the parent class.
26
+ class Child1 < ParentClass
27
+ end
28
+ Sub-classes need not include +Factory+ though doing so should not hurt anything.
29
+ The +create+ class method is implemeted by the mixin for the parent class and all
30
+ sub-classes. Constructor arguments can be passed similarly through +create+.
31
+ ParentClass.create('hello') # Returns an object of type Child1
32
+ Subsequent sub-classing updates the factory overrides.
33
+ class Child2 < Child1
34
+ end
35
+
36
+ ParentClass.create # Returns an object of type Child2
37
+ Child1.create # Returns an object of type Child2
38
+ ParentClass.new # Works normally. Returns an object of type ParentClass.
39
+
40
+ class Child3 < ParentClass
41
+ end
42
+
43
+ ParentClass.create # Returns an object of type Child3
44
+ Child1.create # Returns an object of type Child2 since Child3 is not a decendent.
45
+
46
+ == Manual Factory Overrides
47
+
48
+ If the resulting factory overrides are not what is desired, they can be manually
49
+ overriden.
50
+ The methods that are discussed in the section takes arguments which are the class
51
+ constants
52
+ Factory.global_disable_override Child3
53
+ or as a symbol (strings are also accepted).
54
+ Factory.global_disable_override :Child3
55
+ This allows overrides to be used even before a class is defined.
56
+
57
+ === Factory Override Disable
58
+
59
+ Continuing from the above example +ParentClass+ has a factory override of +Child3+
60
+ since it was the last sub-class to inherit from it. If the intention is to have
61
+ +Child2+ be the factory override there are several ways this can be accomplished.
62
+ To disable a class from overriding a particular class either of the following can
63
+ be used.
64
+ Factory.disable_override ParentClass, Child3
65
+ ParentClass.create # Returns an object of type Child2
66
+ or,
67
+ ParentClass.disable_factory_override Child3
68
+ ParentClass.create # Returns an object of type Child2
69
+ Since the disable is with respect to a specific ancestor, other ancestors are
70
+ uneffected.
71
+
72
+ === Factory Override Enable
73
+
74
+ Another way of manually configuring overrides is through enabling an override. This
75
+ can also be used to cancel an existing class specific factory disable override.
76
+ Factory.enable_override ParentClass, Child3
77
+ ParentClass.create # Returns an object of type Child3
78
+ The last override enable takes presedence.
79
+ Factory.enable_override ParentClass, Child2
80
+ ParentClass.create # Returns an object of type Child2
81
+ or,
82
+ ParentClass.enable_override Child2
83
+ ParentClass.create # Returns an object of type Child2
84
+ Subsequent calls of the disable override methods will cancel the previous enable
85
+ overrides on the same types.
86
+
87
+ === Global Factory Override Methods
88
+
89
+ To disable a class from overriding any classes use the following,
90
+ Factory.global_disable_override Child3
91
+ To cancel the disable override,
92
+ Factory.remove_global_disable_override Child3
@@ -0,0 +1,29 @@
1
+ require 'rake/testtask'
2
+ require 'rdoc/task'
3
+
4
+ #
5
+ # Rake defined tasks
6
+ #
7
+
8
+ Rake::TestTask.new do |t|
9
+ t.libs << 'test'
10
+ t.test_files = FileList['test/test*.rb']
11
+ # t.verbose = true
12
+ end
13
+
14
+ Rake::RDocTask.new(:rdoc) do |rd|
15
+ rd.main = "doc/README.rdoc"
16
+ rd.rdoc_files.include("doc/*.rdoc", "lib/**/*.rb", "bin/*")
17
+ rd.title = "Factory API"
18
+ rd.options << "--include=doc"
19
+ end
20
+
21
+ Rake::RDocTask.new(:rdoc_dev) do |rd|
22
+ rd.main = "doc/README.rdoc"
23
+ rd.rdoc_files.include("doc/*.rdoc", "lib/**/*.rb", "test/**/*.rb", "bin/*")
24
+ rd.rdoc_dir = "html_dev"
25
+ rd.title = "Factory Development API"
26
+ rd.options << "--all"
27
+ rd.options << "--include=doc"
28
+ end
29
+
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'factory/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "factory"
8
+ spec.version = Factory::VERSION
9
+ spec.authors = ["Ben Delsol"]
10
+ spec.email = ["ben.delsol@intel.com"]
11
+ spec.summary = "Provides a simple factory module for object construction."
12
+ spec.description = ""
13
+ spec.homepage = ""
14
+
15
+ orig = $VERBOSE; $VERBOSE = nil
16
+ spec.files = `git ls-files`.split($/)
17
+ $VERBOSE = orig
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler"
23
+ spec.add_development_dependency "rake", "0.8.7"
24
+ spec.add_development_dependency "rdoc"
25
+
26
+ spec.extra_rdoc_files = Dir.glob("doc/*.rdoc")
27
+ spec.has_rdoc = true
28
+ spec.rdoc_options += ["--title=TestStats API",
29
+ "--main=README.rdoc", "-f", "hanna"]
30
+ end
31
+
@@ -0,0 +1,228 @@
1
+
2
+ require 'factory/version'
3
+
4
+ # The Factory mixin provides a robust Factory implementation. Overrides are
5
+ # automatically registered upon sub-classing. Manual override and disables are
6
+ # available if auto-registration does not result in the desired factory overrides.
7
+ # Manual overrides are available at the class and global granularities. Method arguments
8
+ # can be passed in as strings or symbols so that overrides can be set even before
9
+ # classes have been defined.
10
+ module Factory
11
+
12
+ @override_lists = {}
13
+ @global_override_disables = []
14
+
15
+ # OverrideList is used to keep track of a classes various override settings.
16
+ class OverrideList #:nodoc:
17
+
18
+ attr_reader :class_name, :parent
19
+
20
+ def initialize name
21
+ @class_name = name
22
+ @parent = nil
23
+ @sub_class_overrides = []
24
+ @override_disables = []
25
+ @manual_overrides =[]
26
+ end
27
+
28
+ # Used to specify the parent class of the class which this OverrideList is for.
29
+ def parent= class_name
30
+ if (!@parent.nil? and !class_name.nil?) and (@parent != class_name)
31
+ raise "parent can be written only once."
32
+ end
33
+ @parent ||= class_name
34
+ end
35
+
36
+ # Called by Factory when a registered class is inherited from.
37
+ def add_inherited_override sub_class
38
+ @sub_class_overrides << sub_class
39
+ end
40
+
41
+ # Called by Factory when the user is manually overriding factory override
42
+ # sub-class defaults.
43
+ def add_override name
44
+ @manual_overrides << name
45
+ @override_disables.delete name
46
+ end
47
+
48
+ # Called by Factory when the user is manually overriding factory override
49
+ # sub-class defaults.
50
+ def remove_override name
51
+ @override_disables << name
52
+ end
53
+
54
+ # Calculates and returns the class name as string of the factory override for the
55
+ # class which this OverrideList is for. Manual and global overrides take
56
+ # presedence over automatic overrides via inheritance.
57
+ def get_override
58
+ overrides = @sub_class_overrides + @manual_overrides
59
+ while !overrides.empty?
60
+ override = overrides.pop
61
+ return override unless @override_disables.include? override or
62
+ Factory.global_override_disables.include? override
63
+ end
64
+ return @class_name
65
+ end
66
+
67
+ # Called during testing.
68
+ def reset_overrides #:nodoc:
69
+ @manual_overrides.clear
70
+ @override_disables.clear
71
+ end
72
+
73
+ # Returns a print friendly string which summarizes the factory override
74
+ # configuration.
75
+ def to_s
76
+ <<-TXT
77
+ Factory Class: #{class_name}
78
+ Parent: #{parent.nil? ? 'Not in Factory' : parent}
79
+ Sub-class Overrides: #{@sub_class_overrides.empty? ?
80
+ 'None' : @sub_class_overrides.join(', ')}
81
+ Manual Overrides: #{@manual_overrides.empty? ?
82
+ 'None' : @manual_overrides.join(', ')}
83
+ Manual Override Disables: #{@override_disables.empty? ?
84
+ 'None' : @override_disables.join(', ')}
85
+ Factory Override: #{get_override}
86
+ TXT
87
+ end
88
+
89
+ end
90
+
91
+ ########################################
92
+ # Factory Class Methods
93
+ ########################################
94
+
95
+ # Include callback which adds class methods to the including class.
96
+ def self.included klass #:nodoc:
97
+ Factory.create_override_list klass
98
+ klass.extend Factory::ClassMethods
99
+ end
100
+
101
+ # The methods in this module will be added to classes which include Factory as
102
+ # class methods.
103
+ module ClassMethods
104
+
105
+ # Inheritance callback. Creates an OverrideList and adds sub-class auto-overrides.
106
+ def inherited sub_class #:nodoc:
107
+ Factory.create_override_list sub_class, self
108
+ Factory.inherited_override self, sub_class
109
+ end
110
+
111
+ # Used to create objects of the type registered as the classes factory override.
112
+ def create *args
113
+ return Factory[self].new() if args.empty?
114
+ return Factory[self].new(*args)
115
+ end
116
+
117
+ # Used to manually enable class specific override class.
118
+ def enable_factory_override overriding_class
119
+ Factory.enable_override self, overriding_class
120
+ end
121
+
122
+ # Used to manually disable class specific override class.
123
+ def disable_factory_override overriding_class
124
+ Factory.disable_override self, overriding_class
125
+ end
126
+
127
+ # Accessor which returns the class which is registered as this classes override.
128
+ def factory_override
129
+ Factory[self]
130
+ end
131
+
132
+ end
133
+
134
+ ########################################
135
+ # Class Method Mixins
136
+ ########################################
137
+
138
+ # Registers a class in the factory by creating it an OverrideList.
139
+ def self.create_override_list klass, parent=nil #:nodoc:
140
+ parent = parent.to_s unless parent.nil?
141
+ @override_lists[klass.to_s] ||= OverrideList.new(klass.to_s)
142
+ @override_lists[klass.to_s].parent ||= parent
143
+ return @override_lists[klass.to_s]
144
+ end
145
+
146
+ # Adds inherited overrides up the chain of ancestors.
147
+ def self.inherited_override parent, sub_class #:nodoc:
148
+ override_list = @override_lists[parent.to_s]
149
+ override_list.add_inherited_override sub_class.to_s
150
+ if override_list.parent
151
+ Factory.inherited_override override_list.parent, sub_class.to_s
152
+ end
153
+ end
154
+
155
+ # Returns an OverrideList for +klass+ or creates it if it does not already exist.
156
+ def self.override_list klass #:nodoc:
157
+ @override_lists[klass.to_s] ||= Factory.create_override_list(klass.to_s)
158
+ end
159
+
160
+ # Accessor which returns the +@global_override_disables+ array.
161
+ def self.global_override_disables #:nodoc:
162
+ @global_override_disables.dup
163
+ end
164
+
165
+ # Used for testing purposes. Resets all manual override arrays.
166
+ def self.reset_overrides #:nodoc:
167
+ @global_override_disables.clear
168
+ @override_lists.each_value do |ovr_list|
169
+ ovr_list.reset_overrides
170
+ end
171
+ end
172
+
173
+ # Used to manually enable class specific override class.
174
+ def self.enable_override overridden_class, overriding_class
175
+ Factory.override_list(overridden_class).add_override overriding_class.to_s
176
+ end
177
+
178
+ # Used to manually disable class specific override class.
179
+ def self.disable_override overridden_class, overriding_class
180
+ Factory.override_list(overridden_class.to_s).remove_override overriding_class.to_s
181
+ end
182
+
183
+ # Used to manually disable a class from overriding any ancestors.
184
+ def self.global_disable_override overriding_class
185
+ @global_override_disables << overriding_class.to_s
186
+ end
187
+
188
+ # Used to cancel a previous +global_disable_override+.
189
+ def self.remove_global_disable_override overriding_class
190
+ @global_override_disables.delete overriding_class.to_s
191
+ end
192
+
193
+ # Accessor which returns the factory override of +base_class+.
194
+ def self.[] base_class
195
+ if @override_lists[base_class.to_s].nil?
196
+ raise "class called #{base_class} is not registered with the factory."
197
+ end
198
+ eval @override_lists[base_class.to_s].get_override
199
+ end
200
+
201
+ # Prints a summary of the Factory override configuration. Returns the summary as
202
+ # a string. The summary will not be printed if +silent+ is true.
203
+ def self.print_overrides silent=false
204
+ s = <<-TXT
205
+ ********************************
206
+ Factory Overrides
207
+ ********************************
208
+
209
+ Global Factory Override Disables: #{@global_override_disables.empty? ?
210
+ 'None' : @global_override_disables.join(', ')}
211
+
212
+ TXT
213
+
214
+ @override_lists.each_value {|ovr_list| s += ovr_list.to_s }
215
+ puts s unless silent
216
+
217
+ return s
218
+
219
+ end
220
+
221
+ ########################################
222
+ # Instance Method Mixins
223
+ ########################################
224
+
225
+ # None.
226
+
227
+ end
228
+
@@ -0,0 +1,5 @@
1
+
2
+ module Factory
3
+ VERSION = '1.0.0'
4
+ end
5
+
@@ -0,0 +1,32 @@
1
+
2
+ require 'rubygems'
3
+ require 'bundler'
4
+ require 'factory'
5
+
6
+ Factory.enable_override :Base, :C3
7
+ Factory.global_disable_override :C4
8
+ class Base
9
+ include Factory
10
+ attr_reader :arg
11
+ def initialize arg=nil
12
+ @arg = arg
13
+ end
14
+ end
15
+
16
+ class C1 < Base
17
+ include Factory # Not needed but shouldn't hurt anything
18
+ end
19
+ C1.disable_factory_override :C5
20
+ class C2 < Base
21
+ end
22
+ class C3 < C1
23
+ end
24
+ class C4 < C2
25
+ end
26
+ class C5 < C1
27
+ end
28
+ Array.class_eval do
29
+ include Factory
30
+ end
31
+ class Array2 < Array
32
+ end
@@ -0,0 +1,235 @@
1
+
2
+ require 'helper'
3
+ require 'test/unit'
4
+
5
+ class FactoryTest < Test::Unit::TestCase
6
+
7
+ def test_factory01_pre_class_definition_overrides
8
+
9
+ assert_equal C3, Base.create.class
10
+ assert_equal C3, Factory[Base]
11
+ assert_equal C3, Base.factory_override
12
+
13
+ assert_equal C2, C2.create.class
14
+ assert_equal C2, Factory[C2]
15
+ assert_equal C2, C2.factory_override
16
+
17
+ end
18
+
19
+ def test_factory02_check_inherited_overrides
20
+
21
+ assert_equal C3, C1.create.class
22
+ assert_equal C3, Factory[C1]
23
+ assert_equal C3, C1.factory_override
24
+
25
+ assert_equal C3, C3.create.class
26
+ assert_equal C3, Factory[C3]
27
+ assert_equal C3, C3.factory_override
28
+
29
+ assert_equal Array2, Array.create.class
30
+ assert_equal Array2, Factory[Array]
31
+
32
+ end
33
+
34
+ def test_factory03_enable_disable_factory_overrides
35
+ Factory.reset_overrides
36
+
37
+ # def enable_factory_override overriding_class
38
+ # Factory.enable_override self, overriding_class
39
+ # end
40
+
41
+ # def disable_factory_override overriding_class
42
+ # Factory.disable_override self, overriding_class
43
+ # end
44
+
45
+ C1.enable_factory_override C3
46
+
47
+ assert_equal C5, Base.create.class
48
+ assert_equal C5, Factory[Base]
49
+ assert_equal C5, Base.factory_override
50
+ assert_equal C3, C1.create.class
51
+ assert_equal C3, Factory[C1]
52
+ assert_equal C3, C1.factory_override
53
+ assert_equal C3, C3.create.class
54
+ assert_equal C3, Factory[C3]
55
+ assert_equal C3, C3.factory_override
56
+ assert_equal C5, C5.create.class
57
+ assert_equal C5, Factory[C5]
58
+ assert_equal C5, C5.factory_override
59
+
60
+ C1.disable_factory_override C3
61
+ Factory.disable_override :C1, C5
62
+ C2.disable_factory_override :C4
63
+
64
+ assert_equal C5, Base.create.class
65
+ assert_equal C5, Factory[Base]
66
+ assert_equal C5, Base.factory_override
67
+ assert_equal C1, C1.create.class
68
+ assert_equal C1, Factory[C1]
69
+ assert_equal C1, C1.factory_override
70
+ assert_equal C3, C3.create.class
71
+ assert_equal C3, Factory[C3]
72
+ assert_equal C3, C3.factory_override
73
+ assert_equal C5, C5.create.class
74
+ assert_equal C5, Factory[C5]
75
+ assert_equal C5, C5.factory_override
76
+ assert_equal C2, C2.create.class
77
+ assert_equal C2, Factory[C2]
78
+ assert_equal C2, C2.factory_override
79
+
80
+ Factory.enable_override :Base, C1
81
+ C3.enable_factory_override :C5
82
+ Factory.enable_override "C1", "C3"
83
+
84
+ assert_equal C1, Base.create.class
85
+ assert_equal C1, Factory[Base]
86
+ assert_equal C1, Base.factory_override
87
+ assert_equal C3, C1.create.class
88
+ assert_equal C3, Factory[C1]
89
+ assert_equal C3, C1.factory_override
90
+ assert_equal C5, C3.create.class
91
+ assert_equal C5, Factory[C3]
92
+ assert_equal C5, C3.factory_override
93
+ assert_equal C5, C5.create.class
94
+ assert_equal C5, Factory[C5]
95
+ assert_equal C5, C5.factory_override
96
+
97
+ Factory.disable_override :Array, Array2
98
+
99
+ assert_equal Array, Array.create.class
100
+ assert_equal Array, Factory[Array]
101
+
102
+ Array.enable_factory_override Array2
103
+
104
+ assert_equal Array2, Array.create.class
105
+ assert_equal Array2, Factory[Array]
106
+
107
+ end
108
+
109
+ def test_factory05_global_disable_override_and_remove_global_disable_override
110
+ Factory.reset_overrides
111
+
112
+ Factory.global_disable_override :C4
113
+ Factory.global_disable_override C5
114
+
115
+ assert_equal C3, Base.create.class
116
+ assert_equal C3, Factory[Base]
117
+ assert_equal C3, Base.factory_override
118
+ assert_equal C3, C1.create.class
119
+ assert_equal C3, Factory[C1]
120
+ assert_equal C3, C1.factory_override
121
+ assert_equal C3, C3.create.class
122
+ assert_equal C3, Factory[C3]
123
+ assert_equal C3, C3.factory_override
124
+ assert_equal C5, C5.create.class
125
+ assert_equal C5, Factory[C5]
126
+ assert_equal C5, C5.factory_override
127
+ assert_equal C2, C2.create.class
128
+ assert_equal C2, Factory[C2]
129
+ assert_equal C2, C2.factory_override
130
+ assert_equal C4, C4.create.class
131
+ assert_equal C4, Factory[C4]
132
+ assert_equal C4, C4.factory_override
133
+
134
+ Factory.remove_global_disable_override C4
135
+
136
+ assert_equal C4, Base.create.class
137
+ assert_equal C4, Factory[Base]
138
+ assert_equal C4, Base.factory_override
139
+ assert_equal C3, C1.create.class
140
+ assert_equal C3, Factory[C1]
141
+ assert_equal C3, C1.factory_override
142
+ assert_equal C3, C3.create.class
143
+ assert_equal C3, Factory[C3]
144
+ assert_equal C3, C3.factory_override
145
+ assert_equal C5, C5.create.class
146
+ assert_equal C5, Factory[C5]
147
+ assert_equal C5, C5.factory_override
148
+ assert_equal C4, C2.create.class
149
+ assert_equal C4, Factory[C2]
150
+ assert_equal C4, C2.factory_override
151
+ assert_equal C4, C4.create.class
152
+ assert_equal C4, Factory[C4]
153
+ assert_equal C4, C4.factory_override
154
+
155
+ end
156
+
157
+ def test_factory06_create_args
158
+ Factory.reset_overrides
159
+ o = C1.create('hello')
160
+ assert_equal C5, o.class
161
+ assert_equal 'hello', o.arg
162
+ end
163
+
164
+ def test_factory07_print_overrides
165
+
166
+ Factory.reset_overrides
167
+
168
+ # One of each type of instance variable set
169
+ Factory.global_disable_override :C4
170
+ C1.enable_factory_override C3
171
+ Factory.disable_override :Array, Array2
172
+
173
+ expected_string = <<-TXT
174
+ ********************************
175
+ Factory Overrides
176
+ ********************************
177
+
178
+ Global Factory Override Disables: C4
179
+
180
+ Factory Class: Base
181
+ Parent: Not in Factory
182
+ Sub-class Overrides: C1, C2, C3, C4, C5
183
+ Manual Overrides: None
184
+ Manual Override Disables: None
185
+ Factory Override: C5
186
+ Factory Class: C1
187
+ Parent: Base
188
+ Sub-class Overrides: C3, C5
189
+ Manual Overrides: C3
190
+ Manual Override Disables: None
191
+ Factory Override: C3
192
+ Factory Class: C2
193
+ Parent: Base
194
+ Sub-class Overrides: C4
195
+ Manual Overrides: None
196
+ Manual Override Disables: None
197
+ Factory Override: C2
198
+ Factory Class: C3
199
+ Parent: C1
200
+ Sub-class Overrides: None
201
+ Manual Overrides: None
202
+ Manual Override Disables: None
203
+ Factory Override: C3
204
+ Factory Class: C4
205
+ Parent: C2
206
+ Sub-class Overrides: None
207
+ Manual Overrides: None
208
+ Manual Override Disables: None
209
+ Factory Override: C4
210
+ Factory Class: C5
211
+ Parent: C1
212
+ Sub-class Overrides: None
213
+ Manual Overrides: None
214
+ Manual Override Disables: None
215
+ Factory Override: C5
216
+ Factory Class: Array
217
+ Parent: Not in Factory
218
+ Sub-class Overrides: Array2
219
+ Manual Overrides: None
220
+ Manual Override Disables: Array2
221
+ Factory Override: Array
222
+ Factory Class: Array2
223
+ Parent: Array
224
+ Sub-class Overrides: None
225
+ Manual Overrides: None
226
+ Manual Override Disables: None
227
+ Factory Override: Array2
228
+ TXT
229
+
230
+ assert_equal expected_string, Factory.print_overrides(true)
231
+
232
+ end
233
+
234
+ end
235
+
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: factory
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ben Delsol
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-06-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.8.7
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.8.7
41
+ - !ruby/object:Gem::Dependency
42
+ name: rdoc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: ''
56
+ email:
57
+ - ben.delsol@intel.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - Gemfile
64
+ - README.rdoc
65
+ - Rakefile
66
+ - factory.gemspec
67
+ - lib/factory.rb
68
+ - lib/factory/version.rb
69
+ - test/helper.rb
70
+ - test/test_factory.rb
71
+ homepage: ''
72
+ licenses: []
73
+ metadata: {}
74
+ post_install_message:
75
+ rdoc_options:
76
+ - --title=TestStats API
77
+ - --main=README.rdoc
78
+ - -f
79
+ - hanna
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubyforge_project:
94
+ rubygems_version: 2.0.2
95
+ signing_key:
96
+ specification_version: 4
97
+ summary: Provides a simple factory module for object construction.
98
+ test_files:
99
+ - test/helper.rb
100
+ - test/test_factory.rb