[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
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...