Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Ruby DSL for invoices
chris
10/3/2006 11:27:00 AM
Hi DSL fans,
I've been playing around with DSLs recently, inspired by the dynamism
you get for free with Ruby, and thought I'd try writing one.
This is my first effort:
http://svn.edendevelopment.co.uk/public/in...
Check out the README.txt for more details. Basically it allows you to
write an invoice in fairly natural language syntax, like this:
new_invoice do
address 'Test Client, Street, ZIP'
code '2006-45'
date '3rd Oct'
work_at 50 do
spent 3.on('Morning meeting')
spent 0.5.on('Making the coffee for the boss').on('3rd Sept')
end
end
And you end up with
http://svn.edendevelopment.co.uk/public/in...
2006-45.pdf
It's work in progress, so suggestions for improvements are welcome.
Feel free to adapt it for your needs, but please send me any
significant patches or new templates so we can spread the love.
Original blog post is here:
http://blog.edendevelopment.co.uk/articles/2006/10/03/domain-specific-language-fo...
Cheers
Chris
1 Answer
chris
10/5/2006 12:10:00 PM
0
chris@edendevelopment.co.uk wrote:
>
http://svn.edendevelopment.co.uk/public/in...
I've updated the DSL to support time and currency:
i = new_invoice do
1.pound | 1.5.euros
work_at 20.pounds / hour do
spent 2.hours.on('Some work')
spent 2.days.on('More work') # Note: assumes a day is 8 hours long
end
end
print i.total.in.pounds # prints '360.00'
print i.total.in.euros # prints '540.00'
Blog post:
http://blog.edendevelopment.co.uk/articles/2006/10/05/invoice-dsl-now-supports-time-an...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Ruby DSL for invoices
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password