[rspec-users] Cucumber - Ambiguous steps

Zach Dennis
Tue, 16 Sep 2008 22:37:19 -0000

On Mon, Sep 15, 2008 at 9:34 AM, aslak hellesoy
<aslak.hellesoy at gmail.com> wrote:
> On Mon, Sep 15, 2008 at 3:27 PM, David Chelimsky <dchelimsky at
gmail.com> wrote:
>> On Mon, Sep 15, 2008 at 8:21 AM, David Chelimsky <dchelimsky at
gmail.com> wrote:
>>> On Mon, Sep 15, 2008 at 8:13 AM, aslak hellesoy
>>> <aslak.hellesoy at gmail.com> wrote:
>>>> On Mon, Sep 15, 2008 at 3:07 PM, Joseph Wilk <lists at
ruby-forum.com> wrote:
>>>>> David Chelimsky wrote:
>>>>>> On Mon, Sep 15, 2008 at 3:54 AM, Joseph Wilk <lists
at ruby-forum.com>
>>>>>> wrote:
>>>>>>> You can still use non-regular expression steps in
Cucumber:
>>>>>>>
>>>>>>> I''ve been unable to think of a good
example where I would want only a
>>>>>>> partial match of a step. Throwing away the
unmatched characters. Does
>>>>>>> anyone have good examples where they would?
>>>>>>
>>>>>> I think you''ve got this right and exposed a
bug. Wanna report it to
>>>>>> lighthouse and/or fix it?
>>>>>
>>>>> Sure I''ll report it and write a patch.
>>>>>
>>>>
>>>> Hold on.
>>>>
>>>> If you want the regexp to match until the end of the string,
why don''t
>>>> you just stick a $ at the end of the Regexp?
>>>>
>>>> That''s how regexen work. I don''t see why they
should work any
>>>> differently when used in Cucumber.
>>>
>>> My previous comments withdrawn. I agree with Aslak.
>>
>> Although, I can see why one might be confused by this. I was. Even
>> though these are regular expressions, the context led me to an
>> (erroneous, but intuitive) expectation that in the presence of these
>> two ...
>>
>>  /this and "(.*)"/
>>  /this and "(.*)" and the other thing/
>>
>> ... that the first would not match "this and that and the other
thing"
>>
>> Perhaps a hint in the error message is in order?
>>
>>    When this and "that" and the other thing
>>      Ambiguous step resolution for "this and \"that\"
and the other thing":
>>
>>      ./features//foo-steps.rb:4:in `/this and "(.*)" and the
other thing/''
>>      ./features//foo-steps.rb:1:in `/this and
"(.*)"/'' (Cucumber::Ambiguous)
>>
>>      Consider ending the shorter expression with a $
>>
>> WDYT?
>>
>
> I like this much better. -Guiding people to use regexen properly is
> better than redefining their semantics.
>

I completely agree. The current story runner fudges with regexps and
it''s really annoying. Raise the bar for regexp education... K-12. ;)

--
Zach Dennis