----- Original Message ----
> From: James Byrne <li...@ruby-forum.com>
> Mark Wilden wrote:
> > Actually, it's the other way around.
> >
> > http://www.pragprog.com/articles/tell-dont-ask
>
> I have read this article and it leaves me rather more confused than not.
That's the danger of oversimplification. Another way to phrase it is, don't
rely on objects for things they know. Rely on them for things they know how to
do.
Now it boils down to who's responsible. The door's lock is responsible for
reading the key, and the bolt is responsible for unlocking the door. The door
is only responsible for letting me in, along with some cold air. The key is a
role here, the lock is the controller, and the bolt... okay, the analogy breaks
down again. But consider zones of responibility.
> sam.authorized?(controller_or_model, action)?
I'll suggest that it's the controllers who are responsible for telling what
role or other requirements need to be satisfied to get their services, and that
it's the job of the user object (maybe by delegating to some role class or
objects) to provide the information as to whether those requirements are met.
I smell something when I think about individual models specifying their
requirements. Front-gate access through the controller actions smells more
correct to me.
If your actions can't be boiled down that atomically, I ask the question, "is
there something else wrong?".
Randy
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users