[ 
https://jira.codehaus.org/browse/JBEHAVE-702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=288854#comment-288854
 ] 

Brian Repko commented on JBEHAVE-702:
-------------------------------------

Been sort of watching this issue go by - thought I'd jump in. At first I 
thought that perhaps this points to variant *keyword* expression but now see 
that that isn't the case.

If we go the route of permutable @Given/@When/@Then, then we could introduce a 
regex escape character - allowing the author to specify the explicit regex for 
that part of the value.  In Daniel's examples, the '{' and '}' characters do 
that.  But it could look a bit like JAX-RS @Path regex escapes as well - if you 
are looking for a syntax that is already in use in the java world.  JAX-RS does 
this around variables but perhaps we could introduce the variable as optional.

@Then(value="A {:must|has to|is to} be {x} unless {:it's|it is} {:part 
of|contained in} {:list?}{y}")
@Then(value="A $:must|has to|is to be $x unless $:it's|it is $:part 
of|contained in $:list?$y")

Problem as you can tell is that we have variable prefix but not suffix 
(variable ends at whitespace).
It may be that if you want to use regex, then you have to have prefix AND 
suffix.

Just my thought from another space (JAX-RS) that is somewhat similar.

Also be careful with your spaces - matching on your examples requires 2 spaces 
- "A must  be $x unless it's..."
                
> Allow injection of the "Steps" class to customize its behavior
> --------------------------------------------------------------
>
>                 Key: JBEHAVE-702
>                 URL: https://jira.codehaus.org/browse/JBEHAVE-702
>             Project: JBehave
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 3.5.4
>            Reporter: Daniel Schneller
>              Labels: i18n, wish
>         Attachments: jbehave-702-1.zip, Steps.java, Steps.java
>
>
> To get more natural German story texts, it would be very helpful if the 
> Steps.listCandidates() method could be amended.
> This would allow for automatically generating slight variations of the texts 
> without having to specify them all as aliases. Currently I am doing this:
> @Then("soll foo bar with $xyz")
> @Aliases(values = {
>       "foo bar with $xyz",
>       "soll foo bar: $xyz",
>       "foo bar: $xyz" })
> The word "soll" is made optional this way. The reasoning behind this is that 
> when using "And" it is more natural to write
> Then soll something else
> And foo bar with $xyz
> instead of
> Then soll something else
> And soll foo bar with $xyz
> It would be very nice to not have define aliases for all these variants, 
> because it makes the code harder to maintain. Instead, I though I'd add this 
> dynamically, the same way annotated Aliases are, but it seems this 
> functionality would require providing a new subclass of 
> org.jbehave.core.steps.Steps which I cannot see how to do.
> I suggest a change like this:
> 1) In org.jbehave.core.steps.Steps add another call in listCandidates() after 
> each of the addCandidatesFromAliases(...) like 
> addCustomDerivedCandidates(...) with the same signature and a protected empty 
> default implementation.
> 2) Allow configuration to specify a custom subclass of 
> org.jbehave.core.steps.Steps. In there custom additions to the candidates 
> list could be made, like the one I described.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to