[rspec-users] Missing methods

James Deville james.deville at gmail.com
Thu Jan 10 23:00:20 EST 2008


It's not a typo. However, since I'm not the only one to think this, I  
might make a set of module methods, which can be called by the non- 
module methods to avoid breaking the current specs. Any idea why one  
works (specs) and the other doesn't (stories)?


James Deville
http://devillecompanies.org
james.deville at gmail.com
rspec r3172
rspec_on_rails r3172
rails r8331

On Jan 10, 2008, at 7:42 PM, John D. Hume wrote:

> Your implementation looks so much like a ModelFactory my team
> implemented last week that it's scary.  Anyway ...

> Is it a typo that you show the "create_..." methods being def'd as
> module methods (i.e., "def self.create...") while the
> "valid_..._attribute" methods are instance methods?  That would
> certainly cause NoMethodErrors (though it would affect specs as well
> as other contexts).
>
> -hume.
>
>
> On Jan 10, 2008 8:27 PM, James Deville <james.deville at gmail.com>  
> wrote:
>> We have a custom implementation of the Mother Object idea. It's  
>> inside
>> of a module, basically like this:
>>
>> module Factory
>>        %w(account friendship person invitation message asset  
>> email_address
>> birth).each do |klass|
>>                eval <<-EOF
>>                def self.create_#{klass}(attributes = {})
>>                        default_attributes = valid_#{klass}_attributes
>>                        #{klass.camelize}.create!  
>> default_attributes.merge(attributes)
>>                end
>>                EOF
>>        end
>>
>>        def valid_message_attributes(options = {})
>>                {
>>                #some message options
>>                }
>>        end
>>
>>        #more valid_x_attributes methods
>> end
>>
>> When I require this file in a spec file, Factory.create_person works
>> fine. When I try to do it in a step file, Factory.create_person is
>> defined, but it fails because valid_person_attributes is missing. If
>> I'm in a debugger, and I do require 'model_factory' followed by
>> Factory.create_person, same deal.
>>
>> Do we have a blank slate being loaded somewhere, and why is it wiping
>> out require files?
>>
>> Thanks
>>
>> James Deville
>> http://devillecompanies.org
>> james.deville at gmail.com
>> rspec r3172
>> rspec_on_rails r3172
>> rails r8331
>>
>>
>>
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users








More information about the rspec-users mailing list