[rspec-users] Problems using config.extend(Macro)

Ants Pants antsmailinglist at gmail.com
Tue Jan 10 08:21:08 EST 2012

Happy New Year everyone!!

I'm having a painful upgrade from Rails 2.3.11 to Rails 3.1.3 and one of
the problems is with the following....

Under Ruby 1.8.7 - Rails 2.3.11 - Rspec 1:

I have model_macros.rb under spec/spec_helpers and it runs beautifully.

Dir[File.expand_path(File.join(File.dirname(__FILE__), 'spec_helpers',
'**', '*.rb'))].each { require f }
config.extend(ModelMacros, :type => :model)

Exactly the same code under Ruby 1.9.2 - Rails 3.1.3 - Rspec 2 gives me ...
uninitialized constant ModelMacros (NameError)

Dir[Rails.root.join("spec/spec_helpers/**/*.rb")].each {|f| require f}
config.extend(ModelMacros, :type => :model)

.... which makes sense as it's missing the namespace (but how did it run
under 2.3.11. Is Ruby 1.8.7 more lenient? - I doubt it)

So I added the namespace and I got rid of that error

config.extend(SpecHelpers::ModelMacros, :type => :model)

But sadly the methods that are called from within the model specs are
unable to be found...... Exception encountered: #<NoMethodError: undefined
method `it_should_require_attributes'

This is only solved by including extend SpecHelpers::ModelMacros in the
model spec file. Not what I want.

Is there something I am missing while migrating all my code? Is there some
really basic Ruby thing I have forgotten to do to get this module included?

I also tried config.include(SpecHelpers::ModelMacros, :type => :model) but
to no avail.

Any help would be great, thank you.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20120110/329fe66b/attachment.html>

More information about the rspec-users mailing list