[rspec-users] Extending assigns in controller specs?

Scott Taylor mailing_lists at railsnewbie.com
Thu Apr 5 15:10:57 EDT 2007

One method would be to:

1. figure out the class
2. reopen the class,
3. alias the method,
4. use your method if multiple keys are given, use the old aliased  
method if not.

Don't know if assigns might have some metaclass trickery, though.   
Post what you find.  I'd be interested.

As for spec'ing it out, first:

require File.dirname(__FILE__) + "/..."

class MyController < ActionController
   def single_var
     @var = "var"

   def multi_var
     @var1 = 1
     @var2 = 2

describe "MyController's single_var" do
   controller_name :my_controller

   setup do
     get :single_var

   it "should assign one variable" do
     assign[:var].should == "var"

describe "MyController's multi_var" do


   it "should assign multi variables" do
     assign[:var1, :var2].should == [1, 2]

Obviously you can use more descriptive names than I have here.  But I  
hope you can see where I'm going with this.


On Apr 5, 2007, at 8:55 AM, Chris Hoffman wrote:

> Hello,
>   I am interested in enhancing assigns in controller specs to do
> things like the following
> assigns[:key1, :key2, :key3] #=> vals for keys
> Is there away to "break open" this construction to overload the :[]  
> operator?
> Thanks.
> -Chris
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

More information about the rspec-users mailing list