fixture_replacement 3.0.1 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.rdoc +5 -0
- data/README.rdoc +2 -14
- data/VERSION +1 -1
- data/lib/fixture_replacement/attribute_builder.rb +5 -3
- data/lib/fixture_replacement/class_methods.rb +10 -2
- data/lib/fixture_replacement/version.rb +2 -2
- data/lib/fixture_replacement.rb +0 -1
- metadata +26 -109
- data/.gitignore +0 -2
- data/Rakefile +0 -8
- data/etc/bug_reports/2007_09_28_linoj.txt +0 -51
- data/etc/google_analytics +0 -6
- data/etc/patches/2007_09_14_default_model_name_with_arguments.diff +0 -26
- data/etc/patches/2007_10_14_active_record_specs.diff +0 -396
- data/etc/patches/2007_10_14_protected_attributes.diff +0 -26
- data/etc/patches/2007_10_14_send_patch.diff +0 -79
- data/etc/patches/2007_10_14_spelling_error_in_comments.diff +0 -13
- data/etc/patches/2007_10_17_protected_attributes_second_go.diff +0 -212
- data/etc/patches/2007_10_18_README.diff +0 -137
- data/etc/patches/2007_10_19_readme_tweak.diff +0 -12
- data/etc/patches/2007_10_19_silence_migration.diff +0 -12
- data/etc/patches/2007_10_25_changed_classify_to_camelize.diff +0 -38
- data/etc/patches/2007_11_20_fixture_replacement_generator_should_not_reload_environment_or_boot.patch +0 -13
- data/etc/patches/2007_11_20_string_random_refactor_and_extension.patch +0 -104
- data/etc/patches/2007_11_20_string_random_refactor_and_extension_v2.patch +0 -108
- data/fixture_replacement.gemspec +0 -126
- data/rake_tasks/code_quality.rb +0 -37
- data/rake_tasks/docs.rb +0 -59
- data/rake_tasks/gem.rb +0 -27
- data/rake_tasks/specs.rb +0 -7
- data/rake_tasks/tests.rb +0 -7
- data/rake_tasks/website.rb +0 -11
- data/spec/fixture_replacement/attribute_builder_spec.rb +0 -162
- data/spec/fixture_replacement/fixture_replacement_spec.rb +0 -96
- data/spec/fixture_replacement/fixtures/classes.rb +0 -78
- data/spec/fixture_replacement/fr_spec.rb +0 -7
- data/spec/fixture_replacement/integration/attr_protected_attributes_spec.rb +0 -71
- data/spec/fixture_replacement/integration/attributes_for_with_invalid_keys_spec.rb +0 -14
- data/spec/fixture_replacement/integration/attributes_from_spec_without_block.rb +0 -52
- data/spec/fixture_replacement/integration/create_method_spec.rb +0 -61
- data/spec/fixture_replacement/integration/cyclic_dependency_spec.rb +0 -32
- data/spec/fixture_replacement/integration/default_warnings_spec.rb +0 -29
- data/spec/fixture_replacement/integration/extend_spec.rb +0 -37
- data/spec/fixture_replacement/integration/has_and_belongs_to_many_spec.rb +0 -64
- data/spec/fixture_replacement/integration/new_method_spec.rb +0 -96
- data/spec/fixture_replacement/integration/private_methods_spec.rb +0 -43
- data/spec/fixture_replacement/integration/public_methods_spec.rb +0 -21
- data/spec/fixture_replacement/integration/valid_attributes_spec.rb +0 -41
- data/spec/fixture_replacement/integration/validation_spec.rb +0 -54
- data/spec/fixture_replacement/regressions/2008_01_21_random_string_with_sti_spec.rb +0 -71
- data/spec/fixture_replacement/version_spec.rb +0 -7
- data/spec/spec.opts +0 -1
- data/spec/spec_helper.rb +0 -16
- data/spec/spec_helpers.rb +0 -117
- data/test/test_helper.rb +0 -21
- data/test/unit/user_test.rb +0 -57
@@ -1,396 +0,0 @@
|
|
1
|
-
Index: spec/fixture_replacement/fixture_replacement_spec.rb
|
2
|
-
===================================================================
|
3
|
-
--- spec/fixture_replacement/fixture_replacement_spec.rb (revision 31)
|
4
|
-
+++ spec/fixture_replacement/fixture_replacement_spec.rb (working copy)
|
5
|
-
@@ -1,53 +1,52 @@
|
6
|
-
-
|
7
|
-
require File.dirname(__FILE__) + "/../spec_helper"
|
8
|
-
+require 'activesupport'
|
9
|
-
+require 'activerecord'
|
10
|
-
|
11
|
-
-# It would be better if these things were actual mocks/stubs
|
12
|
-
-# of ActiveRecord Classes.
|
13
|
-
-class ARBase
|
14
|
-
- class << self
|
15
|
-
- def create!(h={})
|
16
|
-
- obj = new(h)
|
17
|
-
- obj.save!
|
18
|
-
- obj
|
19
|
-
- end
|
20
|
-
+ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
|
21
|
-
+class User < ActiveRecord::Base
|
22
|
-
+ belongs_to :gender
|
23
|
-
+ attr_accessor :saved
|
24
|
-
+ def save!
|
25
|
-
+ @saved = true
|
26
|
-
end
|
27
|
-
+end
|
28
|
-
+class Gender < ActiveRecord::Base
|
29
|
-
+ attr_accessor :saved
|
30
|
-
+ def save!
|
31
|
-
+ @saved = true
|
32
|
-
+ end
|
33
|
-
+end
|
34
|
-
+class Alien < ActiveRecord::Base
|
35
|
-
+ belongs_to :gender
|
36
|
-
+end
|
37
|
-
|
38
|
-
- def initialize(hash={})
|
39
|
-
- @hash = hash
|
40
|
-
+ActiveRecord::Schema.define do
|
41
|
-
+ create_table :users do |t|
|
42
|
-
+ t.string :key
|
43
|
-
+ t.string :other_key
|
44
|
-
+ t.integer :gender_id
|
45
|
-
end
|
46
|
-
-
|
47
|
-
- attr_reader :hash
|
48
|
-
-
|
49
|
-
- def gender # this would be a has_many call in rails
|
50
|
-
- 17
|
51
|
-
+ create_table :genders do |t|
|
52
|
-
+ t.string :sex
|
53
|
-
end
|
54
|
-
-
|
55
|
-
- def save!
|
56
|
-
- @saved = true
|
57
|
-
+ create_table :aliens do |t|
|
58
|
-
+ t.integer :gender_id
|
59
|
-
end
|
60
|
-
-
|
61
|
-
- def saved?
|
62
|
-
- @saved || false
|
63
|
-
- end
|
64
|
-
-
|
65
|
-
end
|
66
|
-
|
67
|
-
-class User < ARBase; end
|
68
|
-
-class Gender < ARBase; end
|
69
|
-
-class Alien < ARBase; end
|
70
|
-
+include FixtureReplacement
|
71
|
-
|
72
|
-
-
|
73
|
-
module FixtureReplacement
|
74
|
-
describe Generator, "creation" do
|
75
|
-
before :each do
|
76
|
-
@generator = Generator.new("user")
|
77
|
-
end
|
78
|
-
|
79
|
-
- it "should take a lowecase-model name as it's paramaters" do
|
80
|
-
+ it "should take a lowercase-model name as its paramaters" do
|
81
|
-
@generator.model_name.should == "user"
|
82
|
-
end
|
83
|
-
|
84
|
-
- it "should be able to take tell the name of model in string" do
|
85
|
-
+ it "should be able to take tell the name of model in string" do
|
86
|
-
@generator.model_name.to_s.should == "user"
|
87
|
-
end
|
88
|
-
|
89
|
-
@@ -84,16 +83,11 @@
|
90
|
-
FixtureReplacement.module_eval do
|
91
|
-
def user_attributes
|
92
|
-
{
|
93
|
-
- :key => :val
|
94
|
-
+ :key => "val"
|
95
|
-
}
|
96
|
-
end
|
97
|
-
end
|
98
|
-
@generator = Generator.new("user")
|
99
|
-
-
|
100
|
-
- @class = Class.new do
|
101
|
-
- include FixtureReplacement
|
102
|
-
- end
|
103
|
-
- @instance = @class.new
|
104
|
-
end
|
105
|
-
|
106
|
-
it "should generate the method default_user in the module" do
|
107
|
-
@@ -103,45 +97,34 @@
|
108
|
-
|
109
|
-
it "should return a ::FixtureReplacement::DelayedEvaluationProc" do
|
110
|
-
@generator.generate_default_method
|
111
|
-
- @instance.default_user.class.should == ::FixtureReplacement::DelayedEvaluationProc
|
112
|
-
+ default_user.class.should == ::FixtureReplacement::DelayedEvaluationProc
|
113
|
-
end
|
114
|
-
|
115
|
-
it %(should return the special proc, which in turn should return an array
|
116
|
-
of the name of the model ('user') if no params were given) do
|
117
|
-
@generator.generate_default_method
|
118
|
-
- @instance.default_user.call.should == ["user"]
|
119
|
-
+ default_user.call.should == ["user"]
|
120
|
-
end
|
121
|
-
|
122
|
-
it %(should return the special proc, which in turn should return an array
|
123
|
-
of the name of the model ('user') and the params given) do
|
124
|
-
@generator.generate_default_method
|
125
|
-
- @instance.default_user({:some => :hash}).call.should == ["user", {:some => :hash}]
|
126
|
-
+ default_user({:key => "hash"}).call.should == ["user", {:key => "hash"}]
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
describe Generator, "generate_create_method for User when user_attributes is defined (and valid)" do
|
131
|
-
- before :each do
|
132
|
-
- User.class_eval do
|
133
|
-
- def save!
|
134
|
-
- @saved = true
|
135
|
-
- end
|
136
|
-
- end
|
137
|
-
-
|
138
|
-
+ before :each do
|
139
|
-
FixtureReplacement.module_eval do
|
140
|
-
def user_attributes
|
141
|
-
{
|
142
|
-
- :key => :val
|
143
|
-
+ :key => "val"
|
144
|
-
}
|
145
|
-
end
|
146
|
-
end
|
147
|
-
@generator = Generator.new("user")
|
148
|
-
@generator.generate_new_method
|
149
|
-
@generator.generate_create_method
|
150
|
-
-
|
151
|
-
- @class = Class.new do
|
152
|
-
- include FixtureReplacement
|
153
|
-
- end
|
154
|
-
- @instance = @class.new
|
155
|
-
end
|
156
|
-
|
157
|
-
it "should generate the method create_user in the module" do
|
158
|
-
@@ -150,38 +133,32 @@
|
159
|
-
|
160
|
-
it "should generate the method create_user which takes one parameter - a hash" do
|
161
|
-
@generator.generate_create_method
|
162
|
-
- @instance.create_user({:key => :value})
|
163
|
-
+ create_user({:key => "value"})
|
164
|
-
end
|
165
|
-
|
166
|
-
it "should return a user" do
|
167
|
-
@generator.generate_create_method
|
168
|
-
- @instance.create_user.should be_a_kind_of(User)
|
169
|
-
+ create_user.should be_a_kind_of(User)
|
170
|
-
end
|
171
|
-
|
172
|
-
- it "should return a user which has been saved (with create!)" do
|
173
|
-
+ it "should return a user which has been saved (with save!)" do
|
174
|
-
@generator.generate_create_method
|
175
|
-
- @instance.create_user.should be_saved
|
176
|
-
+ create_user.saved.should == true
|
177
|
-
end
|
178
|
-
|
179
|
-
it "should overwrite the hash parameters given" do
|
180
|
-
@generator.generate_create_method
|
181
|
-
- @instance.create_user(:key => :value).hash.should == {:key => :value}
|
182
|
-
+ create_user(:key => "value").key.should == "value"
|
183
|
-
end
|
184
|
-
|
185
|
-
it "should not overwrite the default hash parameters, if none are given" do
|
186
|
-
@generator.generate_create_method
|
187
|
-
- @instance.create_user.hash.should == {:key => :val}
|
188
|
-
+ create_user.key.should == "val"
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
describe Generator, "generate_create_method for User when user_attributes is defined (and valid)" do
|
193
|
-
before :each do
|
194
|
-
- User.class_eval do
|
195
|
-
- def save!
|
196
|
-
- @saved = true
|
197
|
-
- end
|
198
|
-
- end
|
199
|
-
-
|
200
|
-
FixtureReplacement.module_eval do
|
201
|
-
def user_attributes
|
202
|
-
{
|
203
|
-
@@ -203,60 +180,40 @@
|
204
|
-
@generator = Generator.new("user")
|
205
|
-
@generator.generate_new_method
|
206
|
-
@generator.generate_create_method
|
207
|
-
-
|
208
|
-
- @class = Class.new do
|
209
|
-
- include FixtureReplacement
|
210
|
-
- end
|
211
|
-
- @instance = @class.new
|
212
|
-
end
|
213
|
-
|
214
|
-
it "should save the associated join models which have a default_* method (if it is not overwritten)" do
|
215
|
-
- created_user = @instance.create_user
|
216
|
-
- created_gender = created_user.hash[:gender]
|
217
|
-
- created_gender.hash.should == {:sex => "Male"}
|
218
|
-
+ created_gender = create_user.gender
|
219
|
-
+ created_gender.sex.should == "Male"
|
220
|
-
end
|
221
|
-
|
222
|
-
it "should not save the associated join model, but not as the default_* method (in the case that it is overwritten)" do
|
223
|
-
- created_user = @instance.create_user(:gender => Gender.create!(:sex => "Female"))
|
224
|
-
- created_gender = created_user.hash[:gender]
|
225
|
-
- created_gender.hash.should == {:sex => "Female"}
|
226
|
-
+ created_user = create_user(:gender => Gender.create!(:sex => "Female"))
|
227
|
-
+ created_gender = created_user.gender
|
228
|
-
+ created_gender.sex.should == "Female"
|
229
|
-
end
|
230
|
-
|
231
|
-
- it "should call Gender.create! when the default_gender method is evaluated by default_gender" do
|
232
|
-
- gender = Gender.new
|
233
|
-
- Gender.should_receive(:create!).and_return gender
|
234
|
-
- @instance.create_user
|
235
|
-
+ it "should call Gender.save! when the default_gender method is evaluated by default_gender" do
|
236
|
-
+ create_user.gender.saved.should == true
|
237
|
-
end
|
238
|
-
|
239
|
-
- it "should not call Gender.create! if the default_gender is overwritten by another value (say, a string)" do
|
240
|
-
- Gender.should_not_receive(:create!)
|
241
|
-
- @instance.create_user(:gender => "a string")
|
242
|
-
+ it "should not call Gender.save! if the default_gender is overwritten by another value" do
|
243
|
-
+ create_user(:gender => Gender.new).gender.saved.should_not == true
|
244
|
-
end
|
245
|
-
end
|
246
|
-
|
247
|
-
describe Generator, "generate_create_method for User when user_attributes is defined, but not valid" do
|
248
|
-
- before :each do
|
249
|
-
- User.class_eval do
|
250
|
-
- def save!
|
251
|
-
- @saved = true
|
252
|
-
- end
|
253
|
-
- end
|
254
|
-
-
|
255
|
-
+ before :each do
|
256
|
-
FixtureReplacement.module_eval do
|
257
|
-
def user_attributes
|
258
|
-
{
|
259
|
-
- :key => :val
|
260
|
-
+ :key => "val"
|
261
|
-
}
|
262
|
-
end
|
263
|
-
end
|
264
|
-
@generator = Generator.new("user")
|
265
|
-
@generator.generate_new_method
|
266
|
-
@generator.generate_create_method
|
267
|
-
-
|
268
|
-
- @class = Class.new do
|
269
|
-
- include FixtureReplacement
|
270
|
-
- end
|
271
|
-
- @instance = @class.new
|
272
|
-
end
|
273
|
-
|
274
|
-
it "should generate the method create_user in the module" do
|
275
|
-
@@ -265,22 +222,9 @@
|
276
|
-
|
277
|
-
it "should generate the method create_user which takes one parameter - a hash" do
|
278
|
-
@generator.generate_create_method
|
279
|
-
- @instance.create_user({:key => :value})
|
280
|
-
+ create_user({:key => "value"})
|
281
|
-
end
|
282
|
-
|
283
|
-
- it "should raise an error with a user which has been saved (with create!)" do
|
284
|
-
- User.class_eval do
|
285
|
-
- def save!
|
286
|
-
- raise
|
287
|
-
- end
|
288
|
-
- end
|
289
|
-
-
|
290
|
-
- @generator.generate_create_method
|
291
|
-
- lambda {
|
292
|
-
- @instance.create_user
|
293
|
-
- }.should raise_error
|
294
|
-
- end
|
295
|
-
-
|
296
|
-
end
|
297
|
-
|
298
|
-
describe Generator, "generate_new_method for User when user_attributes is defined" do
|
299
|
-
@@ -290,7 +234,7 @@
|
300
|
-
FixtureReplacement.module_eval do
|
301
|
-
def user_attributes
|
302
|
-
{
|
303
|
-
- :key => :val
|
304
|
-
+ :key => "val"
|
305
|
-
}
|
306
|
-
end
|
307
|
-
|
308
|
-
@@ -302,12 +246,6 @@
|
309
|
-
end
|
310
|
-
@generator = Generator.new("user")
|
311
|
-
@generator.generate_new_method
|
312
|
-
-
|
313
|
-
- @class = Class.new do
|
314
|
-
- include FixtureReplacement
|
315
|
-
- end
|
316
|
-
- @instance = @class.new
|
317
|
-
-
|
318
|
-
end
|
319
|
-
|
320
|
-
it "should respond to new_user in the module" do
|
321
|
-
@@ -316,19 +254,21 @@
|
322
|
-
|
323
|
-
it "should return a new User object" do
|
324
|
-
User.stub!(:new).and_return @user
|
325
|
-
- @instance.new_user.should == @user
|
326
|
-
+ new_user.should == @user
|
327
|
-
end
|
328
|
-
|
329
|
-
it "should return a new User object with the keys given in user_attributes" do
|
330
|
-
- @instance.new_user.hash.should == {:key => :val}
|
331
|
-
+ new_user.key.should == "val"
|
332
|
-
end
|
333
|
-
|
334
|
-
it "should over-write the User's hash with any hash given to new_user" do
|
335
|
-
- @instance.new_user(:key => :other_value).hash.should == {:key => :other_value}
|
336
|
-
+ new_user(:key => "other_value").key.should == "other_value"
|
337
|
-
end
|
338
|
-
|
339
|
-
it "should add any hash key-value pairs which weren't previously given in user_attributes" do
|
340
|
-
- @instance.new_user(:other_key => :other_value).hash.should == {:key => :val, :other_key => :other_value}
|
341
|
-
+ u = new_user(:other_key => "other_value")
|
342
|
-
+ u.key.should == "val"
|
343
|
-
+ u.other_key.should == "other_value"
|
344
|
-
end
|
345
|
-
end
|
346
|
-
|
347
|
-
@@ -365,39 +305,30 @@
|
348
|
-
|
349
|
-
@generator = Generator.new("alien")
|
350
|
-
@generator.generate_new_method
|
351
|
-
-
|
352
|
-
- @class = Class.new do
|
353
|
-
- include FixtureReplacement
|
354
|
-
- end
|
355
|
-
- @instance = @class.new
|
356
|
-
end
|
357
|
-
|
358
|
-
it "should evaluate any of the default_* methods before returning (if no over-writing key is given)" do
|
359
|
-
- new_user = @instance.new_user
|
360
|
-
- new_gender = new_user.hash[:gender]
|
361
|
-
- new_gender.hash.should == {:sex => "Male"}
|
362
|
-
+ new_gender = new_user.gender
|
363
|
-
+ new_gender.sex.should == "Male"
|
364
|
-
end
|
365
|
-
|
366
|
-
it %(should evaluate any of the default_* methods before returning, with the hash params given to default_* method) do
|
367
|
-
- new_alien = @instance.new_alien
|
368
|
-
- new_gender = new_alien.hash[:gender]
|
369
|
-
- new_gender.hash.should == {:sex => "unknown"}
|
370
|
-
+ new_gender = new_alien.gender
|
371
|
-
+ new_gender.sex.should == "unknown"
|
372
|
-
end
|
373
|
-
|
374
|
-
it "should call Gender.save! when the default_gender method is evaluated by default_gender" do
|
375
|
-
- Gender.should_receive(:create!)
|
376
|
-
- @instance.new_user
|
377
|
-
+ new_user.gender.saved.should == true
|
378
|
-
end
|
379
|
-
|
380
|
-
- it "should not call Gender.new if the default_gender is overwritten by another value (say, a string)" do
|
381
|
-
- Gender.should_not_receive(:create!)
|
382
|
-
- @instance.new_user(:gender => "a string")
|
383
|
-
+ it "should not call Gender.new if the default_gender is overwritten by another value" do
|
384
|
-
+ new_user(:gender => Gender.new).gender.saved.should_not == true
|
385
|
-
end
|
386
|
-
|
387
|
-
it "should be able to overwrite a default_* method" do
|
388
|
-
- new_user = @instance.new_user(:gender => Gender.create!(:sex => "Female"))
|
389
|
-
- created_gender = new_user.hash[:gender]
|
390
|
-
- created_gender.hash.should == {:sex => "Female"}
|
391
|
-
+ new_user = new_user(:gender => Gender.create!(:sex => "Female"))
|
392
|
-
+ created_gender = new_user.gender
|
393
|
-
+ created_gender.sex.should == "Female"
|
394
|
-
end
|
395
|
-
end
|
396
|
-
|
@@ -1,26 +0,0 @@
|
|
1
|
-
Index: lib/fixture_replacement/fixture_replacement.rb
|
2
|
-
===================================================================
|
3
|
-
--- lib/fixture_replacement/fixture_replacement.rb (revision 31)
|
4
|
-
+++ lib/fixture_replacement/fixture_replacement.rb (working copy)
|
5
|
-
@@ -70,7 +70,9 @@
|
6
|
-
hash_given = args[0] || Hash.new
|
7
|
-
merged_hash = self.send(attributes_method).merge(hash_given)
|
8
|
-
evaluated_hash = Generator.merge_unevaluated_method(self, :create, merged_hash)
|
9
|
-
- obj = class_name.create!(evaluated_hash)
|
10
|
-
+ obj = class_name.new
|
11
|
-
+ evaluated_hash.each { |k, v| obj.update_attribute(k, v) }
|
12
|
-
+ obj.save!
|
13
|
-
obj
|
14
|
-
end
|
15
|
-
end
|
16
|
-
@@ -86,7 +88,9 @@
|
17
|
-
hash_given = args[0] || Hash.new
|
18
|
-
merged_hash = self.send(attributes_method).merge(hash_given)
|
19
|
-
evaluated_hash = Generator.merge_unevaluated_method(self, :create, merged_hash)
|
20
|
-
- class_name.new(evaluated_hash)
|
21
|
-
+ obj = class_name.new
|
22
|
-
+ evaluated_hash.each { |k, v| obj.update_attribute(k, v) }
|
23
|
-
+ obj
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
Index: lib/fixture_replacement/fixture_replacement.rb
|
2
|
-
===================================================================
|
3
|
-
--- lib/fixture_replacement/fixture_replacement.rb (revision 31)
|
4
|
-
+++ lib/fixture_replacement/fixture_replacement.rb (working copy)
|
5
|
-
@@ -70,7 +70,9 @@
|
6
|
-
hash_given = args[0] || Hash.new
|
7
|
-
merged_hash = self.send(attributes_method).merge(hash_given)
|
8
|
-
evaluated_hash = Generator.merge_unevaluated_method(self, :create, merged_hash)
|
9
|
-
- obj = class_name.create!(evaluated_hash)
|
10
|
-
+ obj = class_name.new
|
11
|
-
+ evaluated_hash.each { |k, v| obj.send("#{k}=", v) }
|
12
|
-
+ obj.save!
|
13
|
-
obj
|
14
|
-
end
|
15
|
-
end
|
16
|
-
@@ -86,7 +88,9 @@
|
17
|
-
hash_given = args[0] || Hash.new
|
18
|
-
merged_hash = self.send(attributes_method).merge(hash_given)
|
19
|
-
evaluated_hash = Generator.merge_unevaluated_method(self, :create, merged_hash)
|
20
|
-
- class_name.new(evaluated_hash)
|
21
|
-
+ obj = class_name.new
|
22
|
-
+ evaluated_hash.each { |k, v| obj.send("#{k}=", v) }
|
23
|
-
+ obj
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
Index: spec/fixture_replacement/fixture_replacement_spec.rb
|
28
|
-
===================================================================
|
29
|
-
--- spec/fixture_replacement/fixture_replacement_spec.rb (revision 31)
|
30
|
-
+++ spec/fixture_replacement/fixture_replacement_spec.rb (working copy)
|
31
|
-
@@ -18,6 +18,14 @@
|
32
|
-
|
33
|
-
attr_reader :hash
|
34
|
-
|
35
|
-
+ def method_missing symbol, *args
|
36
|
-
+ if symbol.id2name =~ /\A(.+)=\z/
|
37
|
-
+ @hash[$~[1].to_sym] = *args
|
38
|
-
+ else
|
39
|
-
+ super
|
40
|
-
+ end
|
41
|
-
+ end
|
42
|
-
+
|
43
|
-
def gender # this would be a has_many call in rails
|
44
|
-
17
|
45
|
-
end
|
46
|
-
@@ -222,14 +230,14 @@
|
47
|
-
created_gender.hash.should == {:sex => "Female"}
|
48
|
-
end
|
49
|
-
|
50
|
-
- it "should call Gender.create! when the default_gender method is evaluated by default_gender" do
|
51
|
-
+ it "should call Gender.save! when the default_gender method is evaluated by default_gender" do
|
52
|
-
gender = Gender.new
|
53
|
-
- Gender.should_receive(:create!).and_return gender
|
54
|
-
+ Gender.should_receive(:save!).and_return gender
|
55
|
-
@instance.create_user
|
56
|
-
end
|
57
|
-
|
58
|
-
- it "should not call Gender.create! if the default_gender is overwritten by another value (say, a string)" do
|
59
|
-
- Gender.should_not_receive(:create!)
|
60
|
-
+ it "should not call Gender.save! if the default_gender is overwritten by another value (say, a string)" do
|
61
|
-
+ Gender.should_not_receive(:save!)
|
62
|
-
@instance.create_user(:gender => "a string")
|
63
|
-
end
|
64
|
-
end
|
65
|
-
@@ -385,12 +393,12 @@
|
66
|
-
end
|
67
|
-
|
68
|
-
it "should call Gender.save! when the default_gender method is evaluated by default_gender" do
|
69
|
-
- Gender.should_receive(:create!)
|
70
|
-
+ Gender.should_receive(:save!)
|
71
|
-
@instance.new_user
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should not call Gender.new if the default_gender is overwritten by another value (say, a string)" do
|
75
|
-
- Gender.should_not_receive(:create!)
|
76
|
-
+ Gender.should_not_receive(:save!)
|
77
|
-
@instance.new_user(:gender => "a string")
|
78
|
-
end
|
79
|
-
|
@@ -1,13 +0,0 @@
|
|
1
|
-
Index: lib/fixture_replacement/fixture_replacement.rb
|
2
|
-
===================================================================
|
3
|
-
--- lib/fixture_replacement/fixture_replacement.rb (revision 31)
|
4
|
-
+++ lib/fixture_replacement/fixture_replacement.rb (working copy)
|
5
|
-
@@ -22,7 +22,7 @@
|
6
|
-
end
|
7
|
-
|
8
|
-
# This uses a DelayedEvaluationProc, not a typical proc, for type checking.
|
9
|
-
- # It maybe absurd to try to store a proc in a database, but even if someone tries,
|
10
|
-
+ # It may be absurd to try to store a proc in a database, but even if someone tries,
|
11
|
-
# they won't get an error from FixtureReplacement, since the error would be incredibly unclear
|
12
|
-
def merge_unevaluated_method(obj, method_for_instantiation, hash={})
|
13
|
-
hash.each do |key, value|
|