factory 1.0.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.
@@ -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