[rspec-users] Down with Lambda!!

Scott Taylor mailing_lists at railsnewbie.com
Sat Nov 17 22:49:07 EST 2007

On Nov 17, 2007, at 6:59 PM, aslak hellesoy wrote:

> On Nov 18, 2007 12:40 AM, Steven Garcia <lists at ruby-forum.com> wrote:
>> Rspec is all about using natural language to define behavior. In this
>> context, I feel that lambda is sorely out of place. I was chatting on
>> #irc and a pal of mine (wycats) proposed an interesting alternative:
>> alias_method :doing, :lambda
>> so instead of something like
>> lambda {post :create, {:title => nil}}.should
>> raise_error(ActiveRecord::RecordInvalid)
>> we get
>> doing {post :create, {:title => nil}}.should
>> raise_error(ActiveRecord::RecordInvalid)
>> Now it reads like a sentence..much cleaner and less abstract to  
>> those of
>> us who are not Ruby wizards (yet)
>> Chatting with other folks and they are hyped on the idea.
>> What do you guys think?
>> Any chance we could get something like this into trunk?
> Probably not. There was a longer discussion of it here:
> http://rubyforge.org/tracker/index.php? 
> func=detail&aid=13837&group_id=797&atid=3152
> As you point out, creating an alias is a one-liner.
> The main reason I don't want to add it is that lambda is a common
> idiom, and I don't want to set precedence of aliasing core Ruby idioms
> just because some people don't like the ones in Ruby.

Couldn't agree more with the reasoning (as per the last time).  One  
thing that has been circulating around my mind is an aliasing "it"  
with "he", which makes a lot of sense when you write specs from a  
User's perspective:

describe "A", User do

   he "should receiving an extra 2 dollars when he passes go"


Anyway - would it be reasonable for this to go into rspec core?  It  
seems too specific to *my* needs, and not central enough to specs in  
general.  Plus, if this were added, should "she" also be added?

Just another thing - I've never understood why so many find lambda to  
be an unusual construction - a block *is* a lambda, and it *is* a  
Proc (more or less), and those are used everywhere in the language.


More information about the rspec-users mailing list