@Tom - I could be missing something here but although your example is easier to 
read it would then still have to be parsed and some actual code would then need 
to do the building.

In the Fowler example it is working Ruby code, uses chaining and is still easy 
to read. In your example its just a text file that needs to be dealt with by a 
programming language in some way.

 Alan




________________________________
From: Tom Chiverton <[email protected]>
To: [email protected]
Sent: Tuesday, February 17, 2009 11:11:52 AM
Subject: [CFCDEV] Re: Method chaining

On Monday 16 Feb 2009, Alan Livie wrote:
> In 'The Thoughtworks Anthology' Martin Fowler gets pretty serious with
> method chaining building internal DSL's in Ruby and his examples read very
> well.

If you are going to build a DSL, you might as well make it easy to read.
In this case I'd throw out the brackets, colons and dots.
It's 'just' a string transform inside the DSL compiler to get it back to what 
the internals 'need', but it makes it a lot clearer.

Mind you, I've only built one DSL, and it's space was fairly constrained.

> ConfigurationBuilder.
>
>     item(:secure_air_vent).
>
>     item(:acid_bath).
>         uses(Resources.acid.
>             type(:hcl).
>             grade(5)).
>         uses(Resources.electricity(12)).

ConfigurationBuilder

item secure_air_vent

item acid_bath
uses Resources.acid
type hcl 
grade 5
uses Resources.electricity 12
-- 
Tom Chiverton

**************************************************** 

This email is sent for and on behalf of Halliwells LLP.

Halliwells LLP is a limited liability partnership registered in England and 
Wales under registered number OC307980 whose registered office address is at 
Halliwells LLP, 3 Hardman Square, Spinningfields, Manchester, M3 3EB. A list of 
members is available for inspection at theregistered office together with a 
list of those non members who are referred to as partners. We use the word 
?partner? to refer to a member of the LLP, or an employee or consultant with 
equivalent standing and qualifications. Regulated by the Solicitors Regulation 
Authority.

CONFIDENTIALITY

This email is intended only for the use of the addressee named above and may be 
confidential or legally privileged. If you are not the addressee you must not 
read it and must not use any information contained in nor copy it nor inform 
any person other than Halliwells LLP or the addressee of its existence or 
contents. If you have received this email in error please delete it and notify 
Halliwells LLP IT Department on 0870 365 2500.

For more information about Halliwells LLP visit www.halliwells.com.


      
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CFCDev" 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/cfcdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to