>> You need to create a meta method that accepts a params of
>> ReferenceExpression.this will allow you to skip the strings.
I can get this working for one task expression
Like this for the DSL:
install "horn":
description "This is a description of horn"
svn "https://svnserver/trunk"
#buildfile default.build
tasks one
And this for the meta method:
[Meta]
public static Expression tasks(ReferenceExpression expression)
{
var condition = new BlockExpression();
var taskExpression = new StringLiteralExpression(expression.Name);
condition.Body.Add(new ReturnStatement(taskExpression));
return new MethodInvocationExpression(
new ReferenceExpression("SetBuildTargets"),
condition
);
}
I cannot work out how to handle an array of ReferenceExpressions as I
can only return 1 expression.
Do I need to use a ListExpression or something?
By the way the lack of documentation for this kind of thing is
frightenning. Without Rhino.DSL I would have been lost.
Cheers
Paul
On 6 Nov, 16:31, "Ayende Rahien" <[EMAIL PROTECTED]> wrote:
> LOL
>
>
>
> On Thu, Nov 6, 2008 at 6:06 PM, Paul Cowan <[EMAIL PROTECTED]> wrote:
> > Excellent,
>
> > I'll resist the urge to say that you should write a BOOk about this, I'm
> > guessing you may have heard it before!!!
>
> > 2008/11/6 Ayende Rahien <[EMAIL PROTECTED]>
>
> > You need to create a meta method that accepts a params of
> >> ReferenceExpression.this will allow you to skip the strings.
> >> The meta method will be responsible only for translating the call from RE
> >> to strings, and generating a new method call to the real Tasks method
>
> >> On Thu, Nov 6, 2008 at 7:25 AM, dagda1 <[EMAIL PROTECTED]> wrote:
>
> >>> I have the following dsl with the help of rhino DSL
>
> >>> Install "component":
> >>> Description "blah"
> >>> Svn "https://server.com"
> >>> Tasks "one", "two", "three"
>
> >>> I am unhappy with it because I think I am over using strings.
>
> >>> Can anyone suggest a better way?
>
> >>> Also can anyone tell me how to read in the multiple values for the
> >>> tasks
> >>> Section on the last line?
>
> >>> Cheers- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Rhino Tools Dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---