[rspec-users] weirdness with rake spec!

Patrick J. Collins patrick at collinatorstudios.com
Wed Jun 23 13:07:34 EDT 2010

Hi everyone.

I am totally confused by this...  If I run rake spec, I get a bunch of failures
in a particular file, but if I run script/spec on that individual file, all
examples pass.

The error I am getting is with the pluralize method.  I put a debugger
statement in my code to inspect what is happening:

(rdb:1) pluralize(5, 'foo')
ArgumentError Exception: wrong number of arguments (2 for 0)


This is a situation where I am doing the "self-shunt" method, because I don't
know of a better way to accomplish this.  In other words, I am doing:

class Foo

  def initialize(template, number)
    @template = template
	 @number = number

  def bar
    pluralize(@number, 'foo')

	def bar_link
	  link_to bar, foo_bar_path

  def method_missing(*args, &block)
	 @template.send(*args, &block)


Then in my spec I do:

Foo.new(self, 2).bar.should == "foos"


And like I said, if I run this spec individually, it passes, but with rake
spec, it gives me that wrong number of arguments error.

I would love to structure this differently so that I don't need to pass self
into the class initializer, but I am at a total loss for how to do that.

If I do:

include ActionView::Helpers
include ActionController::UrlWriter

Then I get "can't convert string into hash" errors when ever I try to access a
named route with link_to.

This is a problem I have had to face over and over, and has proven to be quite
frustrating.  The only solution I have found is to pass self into the method..
So if anyone has any other suggestions, I'd love to hear it.

Thank you.

Patrick J. Collins

More information about the rspec-users mailing list