[Rspec-devel] possible addition to expectations...

aslak hellesoy aslak.hellesoy at gmail.com
Mon Apr 24 09:08:06 EDT 2006


hi rich,

that's funny. it's back to the way it used to be!
the reason we.switched.to.a.dotted.syntax was primarily implementation reasons.

however, i can't help but think it sounds a bit staccato when i read
it. my ruby head is more_used_to_digesting_underscores.

i like it a lot. let's see what the others think.
oh - i think you forgot to attach the tests ;-) we're trying to keep
our coverage where it is (98.9%)

aslak

On 4/24/06, Richard Kilmer <rich at infoether.com> wrote:
> Hello all.
>
> Very great framework!
>
> I was talking with Steven Baker at the Ruby in the Valley thing and I
> came up with a simple addition that allows underscore notation in
> addition to dot notation...so you can do this:
>
> target.should.equal <value>
> target.should.not.equal <value>
> target.should.be.close <value>, <tolerance>
> target.should.not.be.close <value>, <tolerance>
>
> can also be expressed as:
>
> target.should_equal <value>
> target.should_not_equal <value>
> target.should_be_close <value>, <tolerance>
> target.should_not_be_close <value>, <tolerance>
>
> What I did was override method_missing on Object and if the call
> begins with should_ it splits on _ and then chain invokes those
> methods.  There may be cleaner code than this...I did it on a red-eye.
>
> Best,
>
> Rich Kilmer
>
>
> class Object
>    include Spec::ObjectExpectations
>
>    alias_method :__orig_method_missing, :method_missing
>    def method_missing(method, *args, &block)
>      if method.to_s[0,7] == "should_"
>        object = self
>        calls = method.to_s.split("_")
>        while calls.length > 1
>          object = object.send(calls.shift)
>        end
>        return object.send(calls.shift, *args, &block)
>      end
>      __orig_method_missing(method, *args, &block)
>    end
>
> end
>
> _______________________________________________
> Rspec-devel mailing list
> Rspec-devel at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-devel
>



More information about the Rspec-devel mailing list