I dunno ... creating a bunch of joining methods seems to be an awfully
disjoint way to deal with something that is, admittedly, designed to laugh
in the face of the Law of Demeter.

I've been handling chains through some heavy use of null_object stubs ...
but, I've been doing that sort of manually.  Could be rolled up, at least.

I'm kind of spitballing something that might be somewhat less manual ...

foo.stub_chains :method_1, :method_2 do |chain|
end

def stub_chains(*args)
  hades = stub("chain", :null_object => true)
  args.each do|chain|
    hades.stub!(chain).and_return(hades)
    self.stub!(chain).and_return(hades)
  end
end

This would more or less let named_scope be used like it's intended in Rails,
with one not-so-little exception -- I have to know what gets called last, so
it can return a real value.  For me, in practice, that's been .paginate, so
it's not been a huge issue, but that's a definite gotchya


WDYT?

On Tue, Nov 4, 2008 at 6:41 PM, Pat Maddox <[EMAIL PROTECTED]> wrote:

> Fernando Perez <[EMAIL PROTECTED]> writes:
>
> > Therefore a workaround is to define an instance method:
> > --
> > class Thing
> >   def self.method1_and_method2(arg)
> >     method1(arg).method2
> >   end
> > end
>
> I'm inclined to call this an improvement rather than a workaround :)
>
> Pat
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>



-- 
// anything worth taking seriously is worth making fun of
// http://blog.devcaffeine.com/
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to