factory_girl 3.1.1 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/.simplecov +4 -0
  2. data/GETTING_STARTED.md +147 -3
  3. data/Gemfile.lock +1 -1
  4. data/NEWS +8 -0
  5. data/features/support/env.rb +0 -1
  6. data/gemfiles/3.0.gemfile.lock +1 -1
  7. data/gemfiles/3.1.gemfile.lock +1 -1
  8. data/gemfiles/3.2.gemfile.lock +1 -1
  9. data/lib/factory_girl.rb +50 -7
  10. data/lib/factory_girl/attribute.rb +1 -1
  11. data/lib/factory_girl/attribute/association.rb +1 -1
  12. data/lib/factory_girl/attribute/dynamic.rb +1 -1
  13. data/lib/factory_girl/attribute/sequence.rb +1 -1
  14. data/lib/factory_girl/attribute/static.rb +1 -1
  15. data/lib/factory_girl/attribute_assigner.rb +12 -3
  16. data/lib/factory_girl/callback.rb +4 -1
  17. data/lib/factory_girl/{callback_runner.rb → callbacks_observer.rb} +1 -1
  18. data/lib/factory_girl/definition.rb +1 -1
  19. data/lib/factory_girl/definition_proxy.rb +4 -0
  20. data/lib/factory_girl/disallows_duplicates_registry.rb +17 -0
  21. data/lib/factory_girl/evaluator.rb +14 -11
  22. data/lib/factory_girl/factory.rb +5 -5
  23. data/lib/factory_girl/null_object.rb +14 -2
  24. data/lib/factory_girl/registry.rb +15 -23
  25. data/lib/factory_girl/reload.rb +2 -0
  26. data/lib/factory_girl/strategy_calculator.rb +1 -5
  27. data/lib/factory_girl/syntax.rb +1 -0
  28. data/lib/factory_girl/syntax/blueprint.rb +1 -0
  29. data/lib/factory_girl/syntax/generate.rb +6 -3
  30. data/lib/factory_girl/syntax/make.rb +4 -2
  31. data/lib/factory_girl/syntax/methods.rb +0 -81
  32. data/lib/factory_girl/syntax/sham.rb +1 -0
  33. data/lib/factory_girl/syntax/vintage.rb +0 -2
  34. data/lib/factory_girl/syntax_runner.rb +5 -0
  35. data/lib/factory_girl/version.rb +1 -1
  36. data/spec/acceptance/activesupport_instrumentation_spec.rb +49 -0
  37. data/spec/acceptance/build_stubbed_spec.rb +6 -6
  38. data/spec/acceptance/initialize_with_spec.rb +26 -0
  39. data/spec/acceptance/modify_factories_spec.rb +2 -2
  40. data/spec/acceptance/register_strategies_spec.rb +120 -0
  41. data/spec/acceptance/skip_create_spec.rb +19 -0
  42. data/spec/acceptance/syntax/blueprint_spec.rb +2 -0
  43. data/spec/acceptance/syntax/generate_spec.rb +2 -0
  44. data/spec/acceptance/syntax/make_spec.rb +2 -0
  45. data/spec/acceptance/syntax/vintage_spec.rb +2 -2
  46. data/spec/acceptance/syntax_methods_within_dynamic_attributes_spec.rb +41 -0
  47. data/spec/factory_girl/attribute/dynamic_spec.rb +6 -6
  48. data/spec/factory_girl/attribute_list_spec.rb +4 -4
  49. data/spec/factory_girl/callback_spec.rb +7 -7
  50. data/spec/factory_girl/definition_proxy_spec.rb +6 -6
  51. data/spec/factory_girl/disallows_duplicates_registry_spec.rb +44 -0
  52. data/spec/factory_girl/evaluator_class_definer_spec.rb +5 -5
  53. data/spec/factory_girl/factory_spec.rb +3 -3
  54. data/spec/factory_girl/null_object_spec.rb +18 -4
  55. data/spec/factory_girl/registry_spec.rb +30 -72
  56. data/spec/factory_girl/sequence_spec.rb +3 -2
  57. data/spec/factory_girl/strategy_calculator_spec.rb +1 -1
  58. data/spec/spec_helper.rb +0 -1
  59. metadata +41 -28
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+
3
+ describe FactoryGirl::DisallowsDuplicatesRegistry do
4
+ let(:registry) { stub("registry", name: "Great thing", register: true, find: true, each: true, clear: true, registered?: true, :[] => true) }
5
+
6
+ subject { FactoryGirl::DisallowsDuplicatesRegistry.new(registry) }
7
+
8
+ it "delegates #each to the registry" do
9
+ block = -> {}
10
+ subject.each(block)
11
+ registry.should have_received(:each).with(block)
12
+ end
13
+
14
+ it "delegates #registered? to the registry" do
15
+ subject.registered?(:great_name)
16
+ registry.should have_received(:registered?).with(:great_name)
17
+ end
18
+
19
+ it "delegates #clear to the registry" do
20
+ subject.clear
21
+ registry.should have_received(:clear)
22
+ end
23
+
24
+ it "delegates #find to the registry" do
25
+ subject.find(:awesome)
26
+ registry.should have_received(:find).with(:awesome)
27
+ end
28
+
29
+ it "delegates #[] to the registry" do
30
+ subject[:awesome]
31
+ registry.should have_received(:[]).with(:awesome)
32
+ end
33
+
34
+ it "delegates #register to the registry when not registered" do
35
+ registry.stubs(registered?: false)
36
+ subject.register(:awesome, {})
37
+ registry.should have_received(:register).with(:awesome, {})
38
+ end
39
+
40
+ it "raises when attempting to #register a previously registered strategy" do
41
+ expect { subject.register(:same_name, {}) }.
42
+ to raise_error(FactoryGirl::DuplicateDefinitionError, "Great thing already registered: same_name")
43
+ end
44
+ end
@@ -1,13 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe FactoryGirl::EvaluatorClassDefiner do
4
- let(:simple_attribute) { stub("simple attribute", name: :simple, to_proc: lambda { 1 }) }
5
- let(:relative_attribute) { stub("relative attribute", name: :relative, to_proc: lambda { simple + 1 }) }
6
- let(:attribute_that_raises_a_second_time) { stub("attribute that would raise without a cache", name: :raises_without_proper_cache, to_proc: lambda { raise "failed" if @run; @run = true; nil }) }
4
+ let(:simple_attribute) { stub("simple attribute", name: :simple, to_proc: -> { 1 }) }
5
+ let(:relative_attribute) { stub("relative attribute", name: :relative, to_proc: -> { simple + 1 }) }
6
+ let(:attribute_that_raises_a_second_time) { stub("attribute that would raise without a cache", name: :raises_without_proper_cache, to_proc: -> { raise "failed" if @run; @run = true; nil }) }
7
7
 
8
8
  let(:attributes) { [simple_attribute, relative_attribute, attribute_that_raises_a_second_time] }
9
9
  let(:class_definer) { FactoryGirl::EvaluatorClassDefiner.new(attributes, FactoryGirl::Evaluator) }
10
- let(:evaluator) { class_definer.evaluator_class.new(stub("build strategy", add_observer: true)) }
10
+ let(:evaluator) { class_definer.evaluator_class.new(Object, stub("build strategy", add_observer: true)) }
11
11
 
12
12
  it "returns an evaluator when accessing the evaluator class" do
13
13
  evaluator.should be_a(FactoryGirl::Evaluator)
@@ -32,7 +32,7 @@ describe FactoryGirl::EvaluatorClassDefiner do
32
32
  end
33
33
 
34
34
  context "with a custom evaluator as a parent class" do
35
- let(:child_attributes) { [stub("child attribute", name: :simple, to_proc: lambda { 1 })] }
35
+ let(:child_attributes) { [stub("child attribute", name: :simple, to_proc: -> { 1 })] }
36
36
  let(:child_definer) { FactoryGirl::EvaluatorClassDefiner.new(child_attributes, class_definer.evaluator_class) }
37
37
 
38
38
  subject { child_definer.evaluator_class }
@@ -19,7 +19,7 @@ describe FactoryGirl::Factory do
19
19
  it "passes a custom creation block" do
20
20
  strategy = stub("strategy", result: nil, add_observer: true)
21
21
  FactoryGirl::Strategy::Build.stubs(new: strategy)
22
- block = lambda {}
22
+ block = -> {}
23
23
  factory = FactoryGirl::Factory.new(:object)
24
24
  factory.to_create(&block)
25
25
 
@@ -69,7 +69,7 @@ describe FactoryGirl::Factory do
69
69
  end
70
70
 
71
71
  it "does not call a lazy attribute block for an overridden attribute" do
72
- declaration = FactoryGirl::Declaration::Dynamic.new(@name, false, lambda { flunk })
72
+ declaration = FactoryGirl::Declaration::Dynamic.new(@name, false, -> { flunk })
73
73
  @factory.declare_attribute(declaration)
74
74
  @factory.run(FactoryGirl::Strategy::AttributesFor, @hash)
75
75
  end
@@ -252,7 +252,7 @@ describe FactoryGirl::Factory, "running a factory" do
252
252
 
253
253
  it "calls the block and returns the result" do
254
254
  block_run = nil
255
- block = lambda {|result| block_run = "changed" }
255
+ block = ->(result) { block_run = "changed" }
256
256
  subject.run(FactoryGirl::Strategy::Build, { }, &block)
257
257
  block_run.should == "changed"
258
258
  end
@@ -1,8 +1,22 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe FactoryGirl::NullObject do
4
- its(:id) { should be_nil }
5
- its(:age) { should be_nil }
6
- its(:name) { should be_nil }
7
- its(:admin?) { should be_nil }
4
+ let(:methods_to_respond_to) { %w[id age name admin?] }
5
+ let(:methods_to_not_respond_to) { %w[email date_of_birth title] }
6
+
7
+ subject { FactoryGirl::NullObject.new(methods_to_respond_to) }
8
+
9
+ it "responds to the given methods" do
10
+ methods_to_respond_to.each do |method_name|
11
+ subject.__send__(method_name).should be_nil
12
+ subject.respond_to?(method_name).should be_true
13
+ end
14
+ end
15
+
16
+ it "does not respond to other methods" do
17
+ methods_to_not_respond_to.each do |method_name|
18
+ expect { subject.__send__(method_name) }.to raise_error(NoMethodError)
19
+ subject.respond_to?(method_name).should be_false
20
+ end
21
+ end
8
22
  end
@@ -1,102 +1,60 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe FactoryGirl::Registry do
4
- let(:aliases) { [:thing, :widget] }
5
- let(:factory) { FactoryGirl::Factory.new(:object) }
6
- let(:other_factory) { FactoryGirl::Factory.new(:string) }
7
- let(:factory_with_aliases) { FactoryGirl::Factory.new(:string, aliases: aliases) }
8
- let(:registry_name) { "Factory" }
4
+ let(:registered_object) { stub("registered object") }
5
+ let(:second_registered_object) { stub("second registered object") }
9
6
 
10
- subject { FactoryGirl::Registry.new(registry_name) }
7
+ subject { FactoryGirl::Registry.new("Great thing") }
11
8
 
12
9
  it { should be_kind_of(Enumerable) }
13
10
 
14
- it "finds a registered a factory" do
15
- subject.add(factory)
16
- subject.find(factory.name).should == factory
11
+ it "finds a registered object" do
12
+ subject.register(:object_name, registered_object)
13
+ subject.find(:object_name).should == registered_object
17
14
  end
18
15
 
19
- it "raises when finding an unregistered factory" do
20
- expect { subject.find(:bogus) }.to raise_error(ArgumentError, "Factory not registered: bogus")
16
+ it "finds a registered object with square brackets" do
17
+ subject.register(:object_name, registered_object)
18
+ subject[:object_name].should == registered_object
21
19
  end
22
20
 
23
- it "adds and returns a factory" do
24
- subject.add(factory).should == factory
21
+ it "raises when an object cannot be found" do
22
+ expect { subject.find(:object_name) }.to raise_error(ArgumentError, "Great thing not registered: object_name")
25
23
  end
26
24
 
27
- it "knows that a factory is registered by symbol" do
28
- subject.add(factory)
29
- subject.should be_registered(factory.name.to_sym)
25
+ it "adds and returns the object registered" do
26
+ subject.register(:object_name, registered_object).should == registered_object
30
27
  end
31
28
 
32
- it "knows that a factory is registered by string" do
33
- subject.add(factory)
34
- subject.should be_registered(factory.name.to_s)
29
+ it "knows that an object is registered by symbol" do
30
+ subject.register(:object_name, registered_object)
31
+ subject.should be_registered(:object_name)
35
32
  end
36
33
 
37
- it "knows that a factory isn't registered" do
38
- subject.should_not be_registered("bogus")
39
- end
40
-
41
- it "can be accessed like a hash" do
42
- subject.add(factory)
43
- subject[factory.name].should == factory
44
- end
45
-
46
- it "iterates registered factories" do
47
- subject.add(factory)
48
- subject.add(other_factory)
49
- subject.to_a.should =~ [factory, other_factory]
34
+ it "knows that an object is registered by string" do
35
+ subject.register(:object_name, registered_object)
36
+ subject.should be_registered("object_name")
50
37
  end
51
38
 
52
- it "iterates registered factories uniquely with aliases" do
53
- subject.add(factory)
54
- subject.add(factory_with_aliases)
55
- subject.to_a.should =~ [factory, factory_with_aliases]
39
+ it "knows when an object is not registered" do
40
+ subject.should_not be_registered("bogus")
56
41
  end
57
42
 
58
- it "doesn't allow a duplicate name" do
59
- expect { 2.times { subject.add(factory) } }.
60
- to raise_error(FactoryGirl::DuplicateDefinitionError, "Factory already registered: object")
43
+ it "iterates registered objects" do
44
+ subject.register(:first_object, registered_object)
45
+ subject.register(:second_object, second_registered_object)
46
+ subject.to_a.should == [registered_object, second_registered_object]
61
47
  end
62
48
 
63
- it "registers aliases" do
64
- subject.add(factory_with_aliases)
65
- aliases.each do |name|
66
- subject.find(name).should == factory_with_aliases
67
- end
49
+ it "does not include duplicate objects with registered under different names" do
50
+ subject.register(:first_object, registered_object)
51
+ subject.register(:second_object, registered_object)
52
+ subject.to_a.should == [registered_object]
68
53
  end
69
54
 
70
55
  it "clears registered factories" do
71
- subject.add(factory)
56
+ subject.register(:object_name, registered_object)
72
57
  subject.clear
73
58
  subject.count.should be_zero
74
59
  end
75
60
  end
76
-
77
- describe FactoryGirl::Registry, "with sequences" do
78
- let(:aliases) { [:sender, :receiver] }
79
- let(:sequence) { FactoryGirl::Sequence.new(:email) { |n| "somebody#{n}@example.com" } }
80
- let(:sequence_with_aliases) { FactoryGirl::Sequence.new(:email, aliases: aliases) { |n| "someone_else#{n}@example.com" } }
81
- let(:registry_name) { "Sequence" }
82
-
83
- subject { FactoryGirl::Registry.new(registry_name) }
84
-
85
- it "registers an sequence" do
86
- subject.add(sequence)
87
- subject.find(:email).should == sequence
88
- end
89
-
90
- it "registers a sequence with aliases" do
91
- subject.add(sequence_with_aliases)
92
-
93
- subject.find(:email).should == sequence_with_aliases
94
- subject.find(:sender).should == sequence_with_aliases
95
- subject.find(:receiver).should == sequence_with_aliases
96
- end
97
-
98
- it "doesn't allow a duplicate name" do
99
- expect { 2.times { subject.add(sequence_with_aliases) } }.
100
- to raise_error(FactoryGirl::DuplicateDefinitionError, "Sequence already registered: email")
101
- end
102
- end
@@ -26,8 +26,9 @@ describe FactoryGirl::Sequence do
26
26
  end
27
27
 
28
28
  describe "a sequence with aliases using default value" do
29
- subject { FactoryGirl::Sequence.new(:test, aliases: [:alias, :other]) { |n| "=#{n}" } }
30
- its(:next) { should == "=1" }
29
+ subject { FactoryGirl::Sequence.new(:test, aliases: [:alias, :other]) { |n| "=#{n}" } }
30
+ its(:next) { should == "=1" }
31
+ its(:names) { should == [:test, :alias, :other] }
31
32
 
32
33
  describe "when incrementing" do
33
34
  before { subject.next }
@@ -18,6 +18,6 @@ describe FactoryGirl::StrategyCalculator do
18
18
  end
19
19
 
20
20
  it "raises when passing a bogus strategy" do
21
- expect { FactoryGirl::StrategyCalculator.new(:bogus_strategy).strategy }.to raise_error "unrecognized method bogus_strategy"
21
+ expect { FactoryGirl::StrategyCalculator.new(:bogus_strategy).strategy }.to raise_error(ArgumentError, /bogus_strategy/)
22
22
  end
23
23
  end
data/spec/spec_helper.rb CHANGED
@@ -6,7 +6,6 @@ require 'rspec'
6
6
  require 'rspec/autorun'
7
7
 
8
8
  require "simplecov"
9
- SimpleCov.start
10
9
 
11
10
  require 'factory_girl'
12
11
  require "mocha"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_girl
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-04-17 00:00:00.000000000 Z
13
+ date: 2012-04-24 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &70213807643080 !ruby/object:Gem::Requirement
17
+ requirement: &70135979934020 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70213807643080
25
+ version_requirements: *70135979934020
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rspec
28
- requirement: &70213807642540 !ruby/object:Gem::Requirement
28
+ requirement: &70135979933560 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70213807642540
36
+ version_requirements: *70135979933560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: cucumber
39
- requirement: &70213807641780 !ruby/object:Gem::Requirement
39
+ requirement: &70135979933100 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '1.1'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70213807641780
47
+ version_requirements: *70135979933100
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: timecop
50
- requirement: &70213807640520 !ruby/object:Gem::Requirement
50
+ requirement: &70135979932720 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70213807640520
58
+ version_requirements: *70135979932720
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: simplecov
61
- requirement: &70213807654720 !ruby/object:Gem::Requirement
61
+ requirement: &70135979932260 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *70213807654720
69
+ version_requirements: *70135979932260
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: aruba
72
- requirement: &70213807653320 !ruby/object:Gem::Requirement
72
+ requirement: &70135979931840 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *70213807653320
80
+ version_requirements: *70135979931840
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: mocha
83
- requirement: &70213807651760 !ruby/object:Gem::Requirement
83
+ requirement: &70135979931420 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *70213807651760
91
+ version_requirements: *70135979931420
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: bourne
94
- requirement: &70213807650780 !ruby/object:Gem::Requirement
94
+ requirement: &70135979931000 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *70213807650780
102
+ version_requirements: *70135979931000
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: appraisal
105
- requirement: &70213807649900 !ruby/object:Gem::Requirement
105
+ requirement: &70135968969860 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ~>
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0.4'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *70213807649900
113
+ version_requirements: *70135968969860
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: sqlite3-ruby
116
- requirement: &70213807649360 !ruby/object:Gem::Requirement
116
+ requirement: &70135968969440 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *70213807649360
124
+ version_requirements: *70135968969440
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: yard
127
- requirement: &70213807648700 !ruby/object:Gem::Requirement
127
+ requirement: &70135968968980 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ! '>='
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
- version_requirements: *70213807648700
135
+ version_requirements: *70135968968980
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: bluecloth
138
- requirement: &70213807740080 !ruby/object:Gem::Requirement
138
+ requirement: &70135968968560 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,7 +143,7 @@ dependencies:
143
143
  version: '0'
144
144
  type: :development
145
145
  prerelease: false
146
- version_requirements: *70213807740080
146
+ version_requirements: *70135968968560
147
147
  description: ! "factory_girl provides a framework and DSL for defining and\n using
148
148
  factories - less error-prone, more explicit, and\n all-around
149
149
  easier to work with than fixtures."
@@ -157,6 +157,7 @@ files:
157
157
  - .autotest
158
158
  - .gitignore
159
159
  - .rspec
160
+ - .simplecov
160
161
  - .travis.yml
161
162
  - .yardopts
162
163
  - Appraisals
@@ -193,7 +194,7 @@ files:
193
194
  - lib/factory_girl/attribute_assigner.rb
194
195
  - lib/factory_girl/attribute_list.rb
195
196
  - lib/factory_girl/callback.rb
196
- - lib/factory_girl/callback_runner.rb
197
+ - lib/factory_girl/callbacks_observer.rb
197
198
  - lib/factory_girl/declaration.rb
198
199
  - lib/factory_girl/declaration/association.rb
199
200
  - lib/factory_girl/declaration/dynamic.rb
@@ -202,6 +203,7 @@ files:
202
203
  - lib/factory_girl/declaration_list.rb
203
204
  - lib/factory_girl/definition.rb
204
205
  - lib/factory_girl/definition_proxy.rb
206
+ - lib/factory_girl/disallows_duplicates_registry.rb
205
207
  - lib/factory_girl/errors.rb
206
208
  - lib/factory_girl/evaluation.rb
207
209
  - lib/factory_girl/evaluator.rb
@@ -229,8 +231,10 @@ files:
229
231
  - lib/factory_girl/syntax/methods.rb
230
232
  - lib/factory_girl/syntax/sham.rb
231
233
  - lib/factory_girl/syntax/vintage.rb
234
+ - lib/factory_girl/syntax_runner.rb
232
235
  - lib/factory_girl/trait.rb
233
236
  - lib/factory_girl/version.rb
237
+ - spec/acceptance/activesupport_instrumentation_spec.rb
234
238
  - spec/acceptance/aliases_spec.rb
235
239
  - spec/acceptance/attribute_aliases_spec.rb
236
240
  - spec/acceptance/attribute_existing_on_object_spec.rb
@@ -252,13 +256,16 @@ files:
252
256
  - spec/acceptance/nested_attributes_spec.rb
253
257
  - spec/acceptance/overrides_spec.rb
254
258
  - spec/acceptance/parent_spec.rb
259
+ - spec/acceptance/register_strategies_spec.rb
255
260
  - spec/acceptance/sequence_spec.rb
261
+ - spec/acceptance/skip_create_spec.rb
256
262
  - spec/acceptance/stub_spec.rb
257
263
  - spec/acceptance/syntax/blueprint_spec.rb
258
264
  - spec/acceptance/syntax/generate_spec.rb
259
265
  - spec/acceptance/syntax/make_spec.rb
260
266
  - spec/acceptance/syntax/sham_spec.rb
261
267
  - spec/acceptance/syntax/vintage_spec.rb
268
+ - spec/acceptance/syntax_methods_within_dynamic_attributes_spec.rb
262
269
  - spec/acceptance/traits_spec.rb
263
270
  - spec/acceptance/transient_attributes_spec.rb
264
271
  - spec/factory_girl/aliases_spec.rb
@@ -273,6 +280,7 @@ files:
273
280
  - spec/factory_girl/declaration_list_spec.rb
274
281
  - spec/factory_girl/definition_proxy_spec.rb
275
282
  - spec/factory_girl/definition_spec.rb
283
+ - spec/factory_girl/disallows_duplicates_registry_spec.rb
276
284
  - spec/factory_girl/evaluator_class_definer_spec.rb
277
285
  - spec/factory_girl/factory_spec.rb
278
286
  - spec/factory_girl/find_definitions_spec.rb
@@ -313,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
321
  version: '0'
314
322
  requirements: []
315
323
  rubyforge_project:
316
- rubygems_version: 1.8.16
324
+ rubygems_version: 1.8.10
317
325
  signing_key:
318
326
  specification_version: 3
319
327
  summary: factory_girl provides a framework and DSL for defining and using model instance
@@ -333,6 +341,7 @@ test_files:
333
341
  - gemfiles/3.1.gemfile.lock
334
342
  - gemfiles/3.2.gemfile
335
343
  - gemfiles/3.2.gemfile.lock
344
+ - spec/acceptance/activesupport_instrumentation_spec.rb
336
345
  - spec/acceptance/aliases_spec.rb
337
346
  - spec/acceptance/attribute_aliases_spec.rb
338
347
  - spec/acceptance/attribute_existing_on_object_spec.rb
@@ -354,13 +363,16 @@ test_files:
354
363
  - spec/acceptance/nested_attributes_spec.rb
355
364
  - spec/acceptance/overrides_spec.rb
356
365
  - spec/acceptance/parent_spec.rb
366
+ - spec/acceptance/register_strategies_spec.rb
357
367
  - spec/acceptance/sequence_spec.rb
368
+ - spec/acceptance/skip_create_spec.rb
358
369
  - spec/acceptance/stub_spec.rb
359
370
  - spec/acceptance/syntax/blueprint_spec.rb
360
371
  - spec/acceptance/syntax/generate_spec.rb
361
372
  - spec/acceptance/syntax/make_spec.rb
362
373
  - spec/acceptance/syntax/sham_spec.rb
363
374
  - spec/acceptance/syntax/vintage_spec.rb
375
+ - spec/acceptance/syntax_methods_within_dynamic_attributes_spec.rb
364
376
  - spec/acceptance/traits_spec.rb
365
377
  - spec/acceptance/transient_attributes_spec.rb
366
378
  - spec/factory_girl/aliases_spec.rb
@@ -375,6 +387,7 @@ test_files:
375
387
  - spec/factory_girl/declaration_list_spec.rb
376
388
  - spec/factory_girl/definition_proxy_spec.rb
377
389
  - spec/factory_girl/definition_spec.rb
390
+ - spec/factory_girl/disallows_duplicates_registry_spec.rb
378
391
  - spec/factory_girl/evaluator_class_definer_spec.rb
379
392
  - spec/factory_girl/factory_spec.rb
380
393
  - spec/factory_girl/find_definitions_spec.rb