pickle 0.5.0 → 0.5.1

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.
@@ -21,7 +21,7 @@ module Pickle
21
21
  pickle_path_for_resources_action_segment(resources, options[:action], options[:segment])
22
22
  end or raise "Could not figure out a path for #{pickle_names.inspect} #{options.inspect}"
23
23
  end
24
-
24
+
25
25
  protected
26
26
  def find_pickle_path_using_action_segment_combinations(resources, parts)
27
27
  path = nil
@@ -32,7 +32,7 @@ module Pickle
32
32
  end
33
33
  path
34
34
  end
35
-
35
+
36
36
  def pickle_path_for_resources_action_segment(resources, action, segment)
37
37
  action.blank? or action = action.downcase.gsub(' ','_')
38
38
  segment.blank? or segment = segment.downcase.gsub(' ','_')
@@ -42,4 +42,4 @@ module Pickle
42
42
  send("#{parts.join('_')}_path", *models) rescue nil
43
43
  end
44
44
  end
45
- end
45
+ end
@@ -2,29 +2,29 @@ module Pickle
2
2
  module Session
3
3
  class ModelNotKnownError < RuntimeError
4
4
  attr_reader :name
5
-
5
+
6
6
  def initialize(name, message = nil)
7
7
  @name = name
8
8
  @message = message.presence || "The model: '#{name}' is not known in this scenario. Use #create_model to create, or #find_model to find, and store a reference in this scenario."
9
9
  end
10
-
10
+
11
11
  def to_s
12
12
  @message
13
13
  end
14
14
  end
15
-
15
+
16
16
  class ModelNotFoundError < RuntimeError
17
17
  end
18
-
18
+
19
19
  class << self
20
20
  def included(world_class)
21
21
  proxy_to_pickle_parser(world_class)
22
22
  end
23
-
23
+
24
24
  def extended(world_object)
25
25
  proxy_to_pickle_parser(class << world_object; self; end) # metaclass is not 2.1 compatible
26
26
  end
27
-
27
+
28
28
  protected
29
29
  def proxy_to_pickle_parser(world_class)
30
30
  world_class.class_eval do
@@ -35,16 +35,23 @@ module Pickle
35
35
  end
36
36
  end
37
37
  end
38
-
38
+
39
39
  def create_model(pickle_ref, fields = nil)
40
- factory, label = *parse_model(pickle_ref)
41
- raise ArgumentError, "Can't create with an ordinal (e.g. 1st user)" if label.is_a?(Integer)
42
- fields = fields.is_a?(Hash) ? parse_hash(fields) : parse_fields(fields)
43
- record = pickle_config.factories[factory].create(fields)
44
- store_model(factory, label, record)
45
- record
40
+ create_or_build_model(:create, 1, pickle_ref, fields)
46
41
  end
47
-
42
+
43
+ def create_models(count, pickle_ref, fields = nil)
44
+ create_or_build_model(:create, count, pickle_ref, fields)
45
+ end
46
+
47
+ def build_model(pickle_ref, fields = nil)
48
+ create_or_build_model(:build, 1, pickle_ref, fields)
49
+ end
50
+
51
+ def build_models(count, pickle_ref, fields = nil)
52
+ create_or_build_model(:build, count, pickle_ref, fields)
53
+ end
54
+
48
55
  # if a column exists in the table which matches the singular factory name, this is used as the pickle ref
49
56
  def create_models_from_table(plural_factory, table)
50
57
  factory = plural_factory.singularize
@@ -68,14 +75,14 @@ module Pickle
68
75
 
69
76
  record
70
77
  end
71
-
78
+
72
79
  def find_model!(name, fields = nil)
73
80
  find_model(name, fields) or raise ModelNotFoundError, "Can't find #{name}#{" with #{fields}" if fields.present?} from the orm in this scenario"
74
81
  end
75
-
82
+
76
83
  def find_models(factory, fields = nil)
77
84
  factory = pickle_parser.canonical(factory)
78
-
85
+
79
86
  models_by_index(factory).clear
80
87
 
81
88
  model_class = pickle_config.factories[factory].klass
@@ -84,7 +91,7 @@ module Pickle
84
91
 
85
92
  records.each {|record| store_model(factory, nil, record)}
86
93
  end
87
-
94
+
88
95
  # if a column exists in the table which matches the singular factory name, this is used as the pickle ref
89
96
  def find_models_from_table(plural_factory, table)
90
97
  factory = plural_factory.singularize
@@ -93,11 +100,11 @@ module Pickle
93
100
  find_model(pickle_ref, hash)
94
101
  end
95
102
  end
96
-
103
+
97
104
  # return the original model stored by create_model or find_model
98
105
  def created_model(name)
99
106
  factory, name_or_index = *parse_model(name)
100
-
107
+
101
108
  if name_or_index.blank?
102
109
  models_by_index(factory).last
103
110
  elsif name_or_index.is_a?(Integer)
@@ -111,46 +118,59 @@ module Pickle
111
118
  def created_model?(name)
112
119
  (created_model(name) rescue nil) ? true : false
113
120
  end
114
-
121
+
115
122
  # return a newly selected model
116
123
  def model(name)
117
124
  model = created_model(name)
118
125
  return nil unless model
119
126
  Pickle::Adapter.get_model(model.class, model.id)
120
127
  end
121
-
128
+
122
129
  # predicate version which raises no errors
123
130
  def model?(name)
124
131
  (model(name) rescue nil) ? true : false
125
132
  end
126
-
133
+
127
134
  # like model, but raise an error if it can't be found
128
135
  def model!(name)
129
136
  model(name) or raise ModelNotKnownError, name
130
137
  end
131
-
138
+
132
139
  # like created_model, but raise an error if it can't be found
133
140
  def created_model!(name)
134
141
  created_model(name) or raise ModelNotKnownError, name
135
142
  end
136
-
143
+
137
144
  # return all original models of specified type
138
145
  def created_models(factory)
139
146
  models_by_index(factory)
140
147
  end
141
-
148
+
142
149
  # return all models of specified type (freshly selected from the database)
143
150
  def models(factory)
144
151
  created_models(factory).map do |model|
145
152
  Pickle::Adapter.get_model(model.class, model.id)
146
153
  end
147
154
  end
148
-
155
+
149
156
  def respond_to_with_pickle_parser?(method, include_private = false)
150
157
  respond_to_without_pickle_parser?(method, include_private) || pickle_parser.respond_to?(method, include_private)
151
158
  end
152
-
159
+
153
160
  protected
161
+ def create_or_build_model(method, count, pickle_ref, fields = nil)
162
+ factory, label = *parse_model(pickle_ref)
163
+ raise ArgumentError, "Can't #{method} with an ordinal (e.g. 1st user)" if label.is_a?(Integer)
164
+ fields = fields.is_a?(Hash) ? parse_hash(fields) : parse_fields(fields)
165
+
166
+ count.to_i.times.map do
167
+ record = pickle_config.factories[factory].send(method, fields)
168
+ store_model(factory, label, record)
169
+ return record if count == 1
170
+ record
171
+ end
172
+ end
173
+
154
174
  def method_missing_with_pickle_parser(method, *args, &block)
155
175
  if pickle_parser.respond_to?(method)
156
176
  pickle_parser.send(method, *args, &block)
@@ -158,12 +178,12 @@ module Pickle
158
178
  method_missing_without_pickle_parser(method, *args, &block)
159
179
  end
160
180
  end
161
-
181
+
162
182
  def pickle_parser=(parser)
163
183
  parser.session = self
164
184
  @pickle_parser = parser
165
185
  end
166
-
186
+
167
187
  def pickle_parser
168
188
  @pickle_parser or self.pickle_parser = Pickle.parser
169
189
  end
@@ -172,37 +192,50 @@ module Pickle
172
192
  pickle_parser.config
173
193
  end
174
194
 
175
- def convert_models_to_attributes(ar_class, attrs)
195
+ def convert_models_to_attributes(klass, attrs)
196
+ columns = nil
176
197
  conditions = {}
198
+
177
199
  attrs.each do |key, val|
178
- if ((defined?(ActiveRecord::Base) && val.is_a?(ActiveRecord::Base)) ||
179
- (defined?(DataMapper::Model) && val.is_a?(DataMapper::Model))) &&
180
- Pickle::Adapter.column_names(ar_class).include?("#{key}_id")
200
+ if supported = supported_association_model_type?(val) or val.nil?
201
+ columns ||= Pickle::Adapter.column_names(klass)
202
+ end
203
+
204
+ if supported && columns.include?("#{key}_id")
181
205
  conditions["#{key}_id"] = val.id
182
- conditions["#{key}_type"] = val.class.base_class.name if ar_class.column_names.include?("#{key}_type")
206
+ conditions["#{key}_type"] = val.class.base_class.name if columns.include?("#{key}_type")
207
+ elsif val.nil? && columns.include?("#{key}_id") && !columns.include?("#{key}")
208
+ # NOOP
183
209
  else
184
210
  conditions[key] = val
185
211
  end
186
212
  end
213
+
187
214
  conditions
188
215
  end
189
-
216
+
217
+ def supported_association_model_type?(associated_model)
218
+ (defined?(ActiveRecord::Base) && associated_model.is_a?(ActiveRecord::Base)) ||
219
+ (defined?(DataMapper::Model) && associated_model.is_a?(DataMapper::Model)) ||
220
+ (defined?(Mongoid::Document) && associated_model.is_a?(Mongoid::Document))
221
+ end
222
+
190
223
  def models_by_name(factory)
191
224
  @models_by_name ||= {}
192
225
  @models_by_name[pickle_parser.canonical(factory)] ||= {}
193
226
  end
194
-
227
+
195
228
  def models_by_index(factory)
196
229
  @models_by_index ||= {}
197
230
  @models_by_index[pickle_parser.canonical(factory)] ||= []
198
231
  end
199
-
232
+
200
233
  # if the factory name != the model name, store under both names
201
234
  def store_model(factory, name, record)
202
235
  store_record(record.class.name, name, record) unless pickle_parser.canonical(factory) == pickle_parser.canonical(record.class.name)
203
236
  store_record(factory, name, record)
204
237
  end
205
-
238
+
206
239
  def store_record(factory, name, record)
207
240
  models_by_name(factory)[name] = record
208
241
  models_by_index(factory) << record
@@ -18,8 +18,8 @@ module Pickle
18
18
  else
19
19
  parse_field_without_model(field)
20
20
  end
21
- end
22
-
21
+ end
22
+
23
23
  def parse_hash(hash)
24
24
  hash.inject({}) do |parsed, (key, val)|
25
25
  if session && val =~ /^#{capture_model}$/
@@ -31,4 +31,4 @@ module Pickle
31
31
  end
32
32
  end
33
33
  end
34
- end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module Pickle
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
@@ -6,10 +6,10 @@ Gem::Specification.new do |s|
6
6
  s.version = Pickle::VERSION.dup
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.licenses = ["MIT"]
9
- s.authors = ["Ian White", "James Le Cuirot", "Niklas Hofer"]
9
+ s.authors = ["Ian White", "James Le Cuirot"]
10
10
  s.description = "Easy model creation and reference in your cucumber features"
11
11
  s.summary = "Easy model creation and reference in your cucumber features."
12
- s.email = ["ian.w.white@gmail.com", "chewi@aura-online.co.uk", "niklas+dev@lanpartei.de"]
12
+ s.email = ["ian.w.white@gmail.com", "chewi@aura-online.co.uk"]
13
13
  s.homepage = "https://github.com/ianwhite/pickle"
14
14
 
15
15
  s.rubyforge_project = "pickle"
@@ -34,5 +34,5 @@ Gem::Specification.new do |s|
34
34
  s.add_development_dependency "machinist", "~>2.0"
35
35
  s.add_development_dependency "database_cleaner"
36
36
  s.add_development_dependency "capybara"
37
- s.add_development_dependency "sqlite3-ruby"
37
+ s.add_development_dependency "sqlite3"
38
38
  end
@@ -27,37 +27,39 @@ When(/^(?:I|they) click the first link in #{capture_email}$/) do |email_ref|
27
27
  end
28
28
 
29
29
  Then(/^(\d)+ emails? should be delivered to (.*)$/) do |count, to|
30
- expect(emails("to: \"#{email_for(to)}\"").size).to eq(count.to_i)
30
+ actual = emails("to: \"#{email_for(to)}\"").size
31
+ expect(actual).to eq(count.to_i), "Expected #{count} emails but encountered #{actual} delivered to #{to}"
31
32
  end
32
33
 
33
34
  Then(/^(\d)+ emails? should be delivered with #{capture_fields}$/) do |count, fields|
34
- expect(emails(fields).size).to eq(count.to_i)
35
+ actual = emails(fields).size
36
+ expect(actual).to eq(count.to_i), "Expected #{count} emails but encountered #{actual} to be delivered with #{fields}"
35
37
  end
36
38
 
37
39
  Then(/^#{capture_email} should be delivered to (.+)$/) do |email_ref, to|
38
- expect(email(email_ref, "to: \"#{email_for(to)}\"")).not_to be_nil
40
+ expect(email(email_ref, "to: \"#{email_for(to)}\"")).not_to be_nil, "Failed to find #{email_ref} delivered to: #{to}"
39
41
  end
40
42
 
41
43
  Then(/^#{capture_email} should not be delivered to (.+)$/) do |email_ref, to|
42
- expect(email(email_ref, "to: \"#{email_for(to)}\"")).to be_nil
44
+ expect(email(email_ref, "to: \"#{email_for(to)}\"")).to be_nil, "Unexpectedly found #{email_ref} delivered to: #{to}"
43
45
  end
44
46
 
45
47
  Then(/^#{capture_email} should have #{capture_fields}$/) do |email_ref, fields|
46
- expect(email(email_ref, fields)).not_to be_nil
48
+ expect(email(email_ref, fields)).not_to be_nil, "Failed to find #{fields} in #{email_ref}"
47
49
  end
48
50
 
49
51
  Then(/^#{capture_email} should contain "(.*)"$/) do |email_ref, text|
50
- expect(email(email_ref).body).to match(/#{text}/)
52
+ expect(email(email_ref).body).to match(/#{text}/), "Failed to find \"#{text}\" in #{email_ref}"
51
53
  end
52
54
 
53
55
  Then(/^#{capture_email} should not contain "(.*)"$/) do |email_ref, text|
54
- expect(email(email_ref).body).not_to match(/#{text}/)
56
+ expect(email(email_ref).body).not_to match(/#{text}/), "Unexpectedly found \"#{text}\" in #{email_ref}"
55
57
  end
56
58
 
57
59
  Then(/^#{capture_email} should link to (.+)$/) do |email_ref, page|
58
- expect(email(email_ref).body).to match(/#{path_to(page)}/)
60
+ expect(email(email_ref).body).to match(/#{path_to(page)}/), "Failed to find link to #{page} in #{email_ref}"
59
61
  end
60
62
 
61
63
  Then(/^show me the emails?$/) do
62
- save_and_open_emails
64
+ save_and_open_emails
63
65
  end
@@ -7,7 +7,7 @@ end
7
7
 
8
8
  # create n models
9
9
  Given(/^(\d+) #{capture_plural_factory} exist(?: with #{capture_fields})?$/) do |count, plural_factory, fields|
10
- count.to_i.times { create_model(plural_factory.singularize, fields) }
10
+ create_models(count, plural_factory.singularize, fields)
11
11
  end
12
12
 
13
13
  # create models from a table
@@ -26,10 +26,15 @@ Then(/^#{capture_model} should not exist(?: with #{capture_fields})?$/) do |name
26
26
  end
27
27
 
28
28
  # find models with a table
29
- Then(/^the following #{capture_plural_factory} should exists?:?$/) do |plural_factory, table|
29
+ Then(/^the following #{capture_plural_factory} should exist:?$/) do |plural_factory, table|
30
30
  expect(find_models_from_table(plural_factory, table)).not_to be_any(&:nil?)
31
31
  end
32
32
 
33
+ # not find models with a table
34
+ Then(/^the following #{capture_plural_factory} should not exists?:?$/) do |plural_factory, table|
35
+ find_models_from_table(plural_factory, table).should be_all(&:nil?)
36
+ end
37
+
33
38
  # find exactly n models
34
39
  Then(/^(\d+) #{capture_plural_factory} should exist(?: with #{capture_fields})?$/) do |count, plural_factory, fields|
35
40
  expect(find_models(plural_factory.singularize, fields).size).to eq(count.to_i)
@@ -60,7 +65,7 @@ Then(/^#{capture_model} should not be #{capture_model}(?:'s)? (\w+)$/) do |targe
60
65
  expect(model!(owner).send(association)).not_to eq(model!(target))
61
66
  end
62
67
 
63
- # assert model.predicate?
68
+ # assert model.predicate?
64
69
  Then(/^#{capture_model} should (?:be|have) (?:an? )?#{capture_predicate}$/) do |name, predicate|
65
70
  if model!(name).respond_to?("has_#{predicate.gsub(' ', '_')}")
66
71
  expect(model!(name)).to send("have_#{predicate.gsub(' ', '_')}")
@@ -83,7 +88,7 @@ end
83
88
  Then(/^#{capture_model}'s (\w+) (should(?: not)?) be #{capture_value}$/) do |name, attribute, expectation, expected|
84
89
  actual_value = model(name).send(attribute)
85
90
  expectation = expectation.gsub("should", "to").gsub(" ", "_")
86
-
91
+
87
92
  case expected
88
93
  when 'nil', 'true', 'false'
89
94
  expect(actual_value).send(expectation, eq(eval(expected)))
@@ -15,47 +15,35 @@ describe Pickle::Adapter do
15
15
  expect { Pickle::Adapter.new.create }.to raise_error(NotImplementedError)
16
16
  end
17
17
 
18
- describe ".model_classes" do
19
- before do
20
- Pickle::Adapter.model_classes = nil
21
- end
22
- end
23
-
24
18
  describe "adapters: " do
25
- before do
26
- @klass1 = Class.new(ActiveRecord::Base).tap { |k| allow(k).to receive(:name).and_return('One') }
27
- @klass2 = Class.new(ActiveRecord::Base).tap { |k| allow(k).to receive(:name).and_return('One::Two') }
28
- @klass3 = Class.new(ActiveRecord::Base).tap { |k| allow(k).to receive(:name).and_return('Three') }
19
+ around do |example|
20
+ begin
21
+ class One < ActiveRecord::Base; end
22
+ class One::Two < ActiveRecord::Base; end
23
+ class Three < ActiveRecord::Base; end
24
+ example.run
25
+ ensure
26
+ Object.send :remove_const, :One
27
+ Object.send :remove_const, :Three
28
+ end
29
29
  end
30
30
 
31
31
  describe 'ActiveRecord' do
32
-
33
- #DEPRECATION WARNING: subclasses is deprecated and will be removed from Rails 3.0 (use descendants instead). (called from __send__ at /Users/pivotal/workspace/factorylabs/protosite/vendor/cache/ruby/1.8/gems/pickle-0.3.1/lib/pickle/adapters/active_record.rb:21)
34
-
35
- describe ".model_classes" do
36
- it "calls .descendants" do
37
- expect(::ActiveRecord::Base).to receive(:descendants).and_return([])
38
- expect(::ActiveRecord::Base).not_to receive(:subclasses)
39
-
40
- ActiveRecord::Base::PickleAdapter.model_classes
41
- end
42
- end
43
-
44
32
  describe 'with class stubs' do
45
33
  before do
46
- allow(Pickle::Adapter::Orm).to receive(:model_classes).and_return([@klass1, @klass2, @klass3])
34
+ allow(Pickle::Adapter::Orm).to receive(:model_classes).and_return([One, One::Two, Three])
47
35
  end
48
36
 
49
37
  it ".factories should create one for each active record class" do
50
- expect(Pickle::Adapter::Orm).to receive(:new).with(@klass1).once
51
- expect(Pickle::Adapter::Orm).to receive(:new).with(@klass2).once
52
- expect(Pickle::Adapter::Orm).to receive(:new).with(@klass3).once
38
+ expect(Pickle::Adapter::Orm).to receive(:new).with(One).once
39
+ expect(Pickle::Adapter::Orm).to receive(:new).with(One::Two).once
40
+ expect(Pickle::Adapter::Orm).to receive(:new).with(Three).once
53
41
  expect(Pickle::Adapter::Orm.factories.length).to eq(3)
54
42
  end
55
43
 
56
44
  describe ".new(Class)" do
57
45
  before do
58
- @factory = Pickle::Adapter::Orm.new(@klass2)
46
+ @factory = Pickle::Adapter::Orm.new(One::Two)
59
47
  end
60
48
 
61
49
  it "should have underscored (s/_) name of Class as #name" do
@@ -63,7 +51,7 @@ describe Pickle::Adapter do
63
51
  end
64
52
 
65
53
  it "#create(attrs) should call Class.create!(attrs)" do
66
- expect(@klass2).to receive(:create!).with({:key => "val"})
54
+ expect(One::Two).to receive(:create!).with({:key => "val"})
67
55
  @factory.create(:key => "val")
68
56
  end
69
57
  end
@@ -72,19 +60,19 @@ describe Pickle::Adapter do
72
60
 
73
61
  describe 'FactoryGirl' do
74
62
  before do
75
- allow(Pickle::Adapter::FactoryGirl).to receive(:model_classes).and_return([@klass1, @klass2, @klass3])
63
+ allow(Pickle::Adapter::FactoryGirl).to receive(:model_classes).and_return([One, One::Two, Three])
76
64
 
77
65
  if defined? ::FactoryGirl
78
66
  @orig_factories = ::FactoryGirl.factories.dup
79
67
  ::FactoryGirl.factories.clear
80
- ::FactoryGirl::Syntax::Default::DSL.new.factory(:one, :class => @klass1) {}
81
- ::FactoryGirl::Syntax::Default::DSL.new.factory(:two, :class => @klass2) {}
68
+ ::FactoryGirl::Syntax::Default::DSL.new.factory(:one, :class => One) {}
69
+ ::FactoryGirl::Syntax::Default::DSL.new.factory(:two, :class => One::Two) {}
82
70
  @factory1 = ::FactoryGirl.factories[:one]
83
71
  @factory2 = ::FactoryGirl.factories[:two]
84
72
  else
85
73
  @orig_factories, Factory.factories = Factory.factories, {}
86
- Factory.define(:one, :class => @klass1) {}
87
- Factory.define(:two, :class => @klass2) {}
74
+ Factory.define(:one, :class => One) {}
75
+ Factory.define(:two, :class => One::Two) {}
88
76
  @factory1 = Factory.factories[:one]
89
77
  @factory2 = Factory.factories[:two]
90
78
  end
@@ -100,14 +88,14 @@ describe Pickle::Adapter do
100
88
  end
101
89
 
102
90
  it ".factories should create one for each factory" do
103
- expect(Pickle::Adapter::FactoryGirl).to receive(:new).with(@factory1).once
104
- expect(Pickle::Adapter::FactoryGirl).to receive(:new).with(@factory2).once
91
+ expect(Pickle::Adapter::FactoryGirl).to receive(:new).with(@factory1, @factory1.name).once
92
+ expect(Pickle::Adapter::FactoryGirl).to receive(:new).with(@factory2, @factory2.name).once
105
93
  Pickle::Adapter::FactoryGirl.factories
106
94
  end
107
95
 
108
- describe ".new(factory)" do
96
+ describe ".new(factory, factory_name)" do
109
97
  before do
110
- @factory = Pickle::Adapter::FactoryGirl.new(@factory1)
98
+ @factory = Pickle::Adapter::FactoryGirl.new(@factory1, @factory1.name)
111
99
  end
112
100
 
113
101
  it "should have name of factory_name" do
@@ -115,7 +103,7 @@ describe Pickle::Adapter do
115
103
  end
116
104
 
117
105
  it "should have klass of build_class" do
118
- expect(@factory.klass).to eq(@klass1)
106
+ expect(@factory.klass).to eq(One)
119
107
  end
120
108
 
121
109
  unless defined? ::FactoryGirl
@@ -129,8 +117,8 @@ describe Pickle::Adapter do
129
117
 
130
118
  describe 'Fabrication' do
131
119
  before do
132
- @schematic1 = [:one, Fabrication::Schematic::Definition.new(@klass1)]
133
- @schematic2 = [:two, Fabrication::Schematic::Definition.new(@klass2)]
120
+ @schematic1 = [:one, Fabrication::Schematic::Definition.new(One)]
121
+ @schematic2 = [:two, Fabrication::Schematic::Definition.new(One::Two)]
134
122
  allow(::Fabrication.manager).to receive(:schematics).and_return(Hash[[@schematic1, @schematic2]])
135
123
  end
136
124
 
@@ -151,7 +139,7 @@ describe Pickle::Adapter do
151
139
  end
152
140
 
153
141
  it "should have klass of build_class" do
154
- expect(@factory.klass).to eq(@klass1)
142
+ expect(@factory.klass).to eq(One)
155
143
  end
156
144
  end
157
145
 
@@ -167,23 +155,23 @@ describe Pickle::Adapter do
167
155
 
168
156
  describe 'Machinist' do
169
157
  before do
170
- allow(Pickle::Adapter::Machinist).to receive(:model_classes).and_return([@klass1, @klass2, @klass3])
158
+ allow(Pickle::Adapter::Machinist).to receive(:model_classes).and_return([One, One::Two, Three])
171
159
 
172
- @klass1.blueprint {}
173
- @klass3.blueprint {}
174
- @klass3.blueprint(:special) {}
160
+ One.blueprint {}
161
+ Three.blueprint {}
162
+ Three.blueprint(:special) {}
175
163
  end
176
164
 
177
165
  it ".factories should create one for each master blueprint, and special case" do
178
- expect(Pickle::Adapter::Machinist).to receive(:new).with(@klass1, :master).once
179
- expect(Pickle::Adapter::Machinist).to receive(:new).with(@klass3, :master).once
180
- expect(Pickle::Adapter::Machinist).to receive(:new).with(@klass3, :special).once
166
+ expect(Pickle::Adapter::Machinist).to receive(:new).with(One, :master).once
167
+ expect(Pickle::Adapter::Machinist).to receive(:new).with(Three, :master).once
168
+ expect(Pickle::Adapter::Machinist).to receive(:new).with(Three, :special).once
181
169
  Pickle::Adapter::Machinist.factories
182
170
  end
183
171
 
184
172
  describe ".new(Class, :master)" do
185
173
  before do
186
- @factory = Pickle::Adapter::Machinist.new(@klass1, :master)
174
+ @factory = Pickle::Adapter::Machinist.new(One, :master)
187
175
  end
188
176
 
189
177
  it "should have underscored (s/_) name of Class as #name" do
@@ -191,14 +179,14 @@ describe Pickle::Adapter do
191
179
  end
192
180
 
193
181
  it "#create(attrs) should call Class.make!(:master, attrs)" do
194
- expect(@klass1).to receive(:make!).with(:master, {:key => "val"})
182
+ expect(One).to receive(:make!).with(:master, {:key => "val"})
195
183
  @factory.create(:key => "val")
196
184
  end
197
185
  end
198
186
 
199
187
  describe ".new(Class, :special)" do
200
188
  before do
201
- @factory = Pickle::Adapter::Machinist.new(@klass3, :special)
189
+ @factory = Pickle::Adapter::Machinist.new(Three, :special)
202
190
  end
203
191
 
204
192
  it "should have 'special_<Class name>' as #name" do
@@ -206,7 +194,7 @@ describe Pickle::Adapter do
206
194
  end
207
195
 
208
196
  it "#create(attrs) should call Class.make!(:special, attrs)" do
209
- expect(@klass3).to receive(:make!).with(:special, {:key => "val"})
197
+ expect(Three).to receive(:make!).with(:special, {:key => "val"})
210
198
  @factory.create(:key => "val")
211
199
  end
212
200
  end