<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-16766120.post114631722061726022..comments</id><updated>2008-03-05T12:16:50.202+01:00</updated><title type='text'>Comments on Liquid Development: Twisting and Shaping DSLs using Ruby Metaprogrammi...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://liquiddevelopment.blogspot.com/feeds/114631722061726022/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html'/><author><name>kia</name><uri>http://www.blogger.com/profile/05750239458663051981</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16766120.post-2650512267346100212</id><published>2008-03-05T12:16:00.000+01:00</published><updated>2008-03-05T12:16:00.000+01:00</updated><title type='text'>I must admit the registry confuses me too, how and...</title><content type='html'>I must admit the registry confuses me too, how and why would it self register, does it need to do this.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/2650512267346100212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/2650512267346100212'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1204715760000#c2650512267346100212' title=''/><author><name>Calabria Property</name><uri>http://www.calabriapropertyuk.com/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-6594829844050708659</id><published>2008-03-05T12:14:00.000+01:00</published><updated>2008-03-05T12:14:00.000+01:00</updated><title type='text'>Although I understand most the "register_with_glob...</title><content type='html'>Although I understand most the "register_with_global_repository" self registry confuses me a little, and could you use this type of programme under any naming syntax.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/6594829844050708659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/6594829844050708659'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1204715640000#c6594829844050708659' title=''/><author><name>Web Design Leeds</name><uri>http://9xb.co.uk/web_design_leeds.html</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-336788959708174290</id><published>2007-04-28T15:40:00.000+02:00</published><updated>2007-04-28T15:40:00.000+02:00</updated><title type='text'>mortgage refinancingrefinancehome mortgage refinan...</title><content type='html'>&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/index.html" REL="nofollow"&gt;mortgage refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance.html" REL="nofollow"&gt;refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-mortgage-refinance.html" REL="nofollow"&gt;home mortgage refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-loan.html" REL="nofollow"&gt;refinance loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/auto-refinance.html" REL="nofollow"&gt;auto refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-mortgage-loan.html" REL="nofollow"&gt;refinance mortgage loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/bad-credit-refinance.html" REL="nofollow"&gt;bad credit refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-rate.html" REL="nofollow"&gt;refinance rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-mortgage-refinance-loan.html" REL="nofollow"&gt;home mortgage refinance loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-mortgage-rate.html" REL="nofollow"&gt;refinance mortgage rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/california-refinance.html" REL="nofollow"&gt;california refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/bad-credit-mortgage-refinance.html" REL="nofollow"&gt;bad credit mortgage refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/texas-mortgage-refinance.html" REL="nofollow"&gt;texas mortgage refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-second-mortgage.html" REL="nofollow"&gt;refinance second mortgage&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/florida-refinance-mortgage.html" REL="nofollow"&gt;florida refinance mortgage&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-refinance-california.html" REL="nofollow"&gt;mortgage refinance california&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-refinance-rate.html" REL="nofollow"&gt;home refinance rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-mortgage-interest-rate.html" REL="nofollow"&gt;refinance mortgage interest rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/in-refinance.html" REL="nofollow"&gt;in refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/florida-refinance.html" REL="nofollow"&gt;florida refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-home-mortgage-rate.html" REL="nofollow"&gt;refinance home mortgage rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/business-refinance.html" REL="nofollow"&gt;business refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-loan-mortgage-refinance-loan.html" REL="nofollow"&gt;home loan mortgage refinance loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/auto-loan-refinance.html" REL="nofollow"&gt;auto loan refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/interest-only-refinance.html" REL="nofollow"&gt;interest only refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-interest-rate.html" REL="nofollow"&gt;refinance interest rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/no-closing-cost-refinance.html" REL="nofollow"&gt;no closing cost refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/michigan-mortgage-refinance.html" REL="nofollow"&gt;michigan mortgage refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/lowest-refinance-rate.html" REL="nofollow"&gt;lowest refinance rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/california-mortgage-refinance-loan.html" REL="nofollow"&gt;california mortgage refinance loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-house.html" REL="nofollow"&gt;refinance house&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/florida-home-refinance.html" REL="nofollow"&gt;florida home refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-home-mortgage-interest-rate.html" REL="nofollow"&gt;refinance home mortgage interest rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-student-loan.html" REL="nofollow"&gt;refinance student loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/california-refinance-home-mortgage.html" REL="nofollow"&gt;california refinance home mortgage&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/bad-credit-refinance-loan.html" REL="nofollow"&gt;bad credit refinance loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-home-mortgage-home-equity-loan.html" REL="nofollow"&gt;refinance home mortgage home equity loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-san-diego.html" REL="nofollow"&gt;refinance san diego&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/va-refinance.html" REL="nofollow"&gt;va refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-2nd-mortgage.html" REL="nofollow"&gt;refinance 2nd mortgage&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-refinance-online.html" REL="nofollow"&gt;mortgage refinance online&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-comparison.html" REL="nofollow"&gt;refinance comparison&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/va-loan-refinance.html" REL="nofollow"&gt;va loan refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/best-refinance-mortgage-rate.html" REL="nofollow"&gt;best refinance mortgage rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/california-refinance-loan.html" REL="nofollow"&gt;california refinance loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/low-refinance-rate.html" REL="nofollow"&gt;low refinance rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/poor-credit-refinance.html" REL="nofollow"&gt;poor credit refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/florida-refinance-mortgage-rate.html" REL="nofollow"&gt;florida refinance mortgage rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/debt-consolidation-refinance.html" REL="nofollow"&gt;debt consolidation refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/cash-out-refinance.html" REL="nofollow"&gt;cash out refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-loan-rate.html" REL="nofollow"&gt;refinance loan rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-equity-mortgage-refinance-loan.html" REL="nofollow"&gt;home equity mortgage refinance loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/ohio-mortgage-refinance.html" REL="nofollow"&gt;ohio mortgage refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-after-bankruptcy.html" REL="nofollow"&gt;refinance after bankruptcy&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/best-refinance-mortgage.html" REL="nofollow"&gt;best refinance mortgage&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/california-mortgage-rate-refinance.html" REL="nofollow"&gt;california mortgage rate refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-refinance-bad-credit.html" REL="nofollow"&gt;home refinance bad credit&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/life-refinance-suv.html" REL="nofollow"&gt;life refinance suv&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-bankruptcy.html" REL="nofollow"&gt;refinance bankruptcy&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/houston-refinance.html" REL="nofollow"&gt;houston refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-loan-refinance-florida.html" REL="nofollow"&gt;mortgage loan refinance florida&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/california-home-loan-refinance.html" REL="nofollow"&gt;california home loan refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-home-equity.html" REL="nofollow"&gt;refinance home equity&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/bad-credit-home-loan-refinance.html" REL="nofollow"&gt;bad credit home loan refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-mortgage-new-jersey.html" REL="nofollow"&gt;refinance mortgage new jersey&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-refinance-lowest-rate.html" REL="nofollow"&gt;mortgage refinance lowest rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-mobile-home.html" REL="nofollow"&gt;refinance mobile home&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/no-credit-refinance-small-business-loan.html" REL="nofollow"&gt;no credit refinance small business loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-mortgage-application.html" REL="nofollow"&gt;refinance mortgage application&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-jacksonville.html" REL="nofollow"&gt;refinance jacksonville&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/current-mortgage-refinance-rate.html" REL="nofollow"&gt;current mortgage refinance rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/miami-refinance.html" REL="nofollow"&gt;miami refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-refinance-calculator.html" REL="nofollow"&gt;mortgage refinance calculator&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/loan-mortgage-rate-refinance.html" REL="nofollow"&gt;loan mortgage rate refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/va-home-loan-refinance.html" REL="nofollow"&gt;va home loan refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/michigan-refinance.html" REL="nofollow"&gt;michigan refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/no-cost-refinance.html" REL="nofollow"&gt;no cost refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-refinance-company.html" REL="nofollow"&gt;mortgage refinance company&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-loan-refinance-and-debt-consolidation.html" REL="nofollow"&gt;mortgage loan refinance and debt consolidation&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/auto-lease-refinance.html" REL="nofollow"&gt;auto lease refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-refinance-california.html" REL="nofollow"&gt;home refinance california&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-mortgage-quote.html" REL="nofollow"&gt;refinance mortgage quote&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-quote.html" REL="nofollow"&gt;refinance quote&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-orlando.html" REL="nofollow"&gt;refinance orlando&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/small-business-refinance.html" REL="nofollow"&gt;small business refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-company.html" REL="nofollow"&gt;refinance company&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/michigan-refinance-mortgage-loan.html" REL="nofollow"&gt;michigan refinance mortgage loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/norfolk-refinance.html" REL="nofollow"&gt;norfolk refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/foreclosure-refinance.html" REL="nofollow"&gt;foreclosure refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-lender.html" REL="nofollow"&gt;refinance lender&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/new-york-refinance.html" REL="nofollow"&gt;new york refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/home-loan-refinance-rate.html" REL="nofollow"&gt;home loan refinance rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-honolulu.html" REL="nofollow"&gt;refinance honolulu&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/best-refinance.html" REL="nofollow"&gt;best refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/business-debt-refinance.html" REL="nofollow"&gt;business debt refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/countrywide-home-loan-refinance.html" REL="nofollow"&gt;countrywide home loan refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/refinance-dallas.html" REL="nofollow"&gt;refinance dallas&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/best-refinance-rate.html" REL="nofollow"&gt;best refinance rate&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/free-quote-on-refinance.html" REL="nofollow"&gt;free quote on refinance&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://arborwood.com/cgi-bin/adrotate/ads/refenance/mortgage-refinance-information.html" REL="nofollow"&gt;mortgage refinance information&lt;/A&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/336788959708174290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/336788959708174290'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1177767600000#c336788959708174290' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-8414621721051078035</id><published>2007-04-27T01:54:00.000+02:00</published><updated>2007-04-27T01:54:00.000+02:00</updated><title type='text'>bad car credit loan refinancingbad credit auto ref...</title><content type='html'>&lt;A HREF="http://bad-car-credit-loan-refinancing.blogspot.com" REL="nofollow"&gt;bad car credit loan refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-auto-refinancing.blogspot.com" REL="nofollow"&gt;bad credit auto refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-car-refinancing.blogspot.com" REL="nofollow"&gt;bad credit car refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-home-refinancing.blogspot.com" REL="nofollow"&gt;bad credit home refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-mortgage-refinancing-loan.blogspot.com" REL="nofollow"&gt;bad credit mortgage refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-refinancing.blogspot.com" REL="nofollow"&gt;bad credit refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-refinancing-home-loan.blogspot.com" REL="nofollow"&gt;bad credit refinancing home loan&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://credit-mortgage-poor-refinancing.blogspot.com" REL="nofollow"&gt;credit mortgage poor refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://poor-credit-refinancing.blogspot.com" REL="nofollow"&gt;poor credit refinancing&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://refinancing-home-with-poor-credit.blogspot.com" REL="nofollow"&gt;refinancing home with poor credit&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-mortgage-refinancing-info.blogspot.com" REL="nofollow"&gt;bad credit mortgage refinancing&lt;/A&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/8414621721051078035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/8414621721051078035'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1177631640000#c8414621721051078035' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-7734190149541807063</id><published>2007-04-25T11:06:00.000+02:00</published><updated>2007-04-25T11:06:00.000+02:00</updated><title type='text'>Check this!Nise site!GoodGoodGoodGoodGoodGoodGoodG...</title><content type='html'>Check this!&lt;BR/&gt;Nise site!&lt;BR/&gt;&lt;A HREF="http://bad-credit-loan-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://argent-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://adjustable-rate-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-mortgage-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-mortgage-refinancing-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://broker-license-mortgage-services.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://broker-mortgage-multiple.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://commercial-mortgage-brokerhtml.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://commercial-property-mortgage-company.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://current-mortgage-rat.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://debt-consolidation-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://fha-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://fixed-rate-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://florida-mortgage-broker-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://florida-mortgage-lender-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://florida-mortgage-loan-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://fremont-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://green-point-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://lowest-mortgage-rate-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-banker.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-broker-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-broker-license.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-broker-loan-officer.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-fraud-cheats.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-houston-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-lender-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://mortgage-net-branch.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://nevada-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://nevada-mortgage-loan-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://north-carolina-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://option-one-mortgage.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://oregon-mortgage-loan-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://refinance-mortgage-loan-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://refinance-second-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://subprime-mortgage.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://texas-mortgage-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://well-fargo-home-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://well-fargo-mortgage-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://auto-lease-refinance.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://auto-loan-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://auto-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-home-loan-refinance.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-mortgage-refinance-info.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://bad-credit-refinance-loan-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://best-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://best-refinance-mortgage.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://best-refinance-mortgage-rate-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://best-refinance-rate.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://business-debt-refinance.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://business-refinance.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://california-home-loan-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://california-mortgage-rate-refinance.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://california-mortgage-refinance-loan-in.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://california-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://california-refinance-home-mortgage-i.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://california-refinance-loan.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://cash-out-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;&lt;A HREF="http://countrywide-home-loan-refinance.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://current-mortgage-refinance-rate.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://debt-consolidation-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://florida-home-refinance.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;&lt;BR/&gt;&lt;A HREF="http://florida-refinance-inf.blogspot.com" REL="nofollow"&gt;Good&lt;/A&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/7734190149541807063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/7734190149541807063'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1177491960000#c7734190149541807063' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114975837191315857</id><published>2006-06-08T11:19:00.000+02:00</published><updated>2006-06-08T11:19:00.000+02:00</updated><title type='text'>Gabriele kicked my ass at: http://riffraff.blogsom...</title><content type='html'>Gabriele kicked my ass at: http://riffraff.blogsome.com/2006/05/02/metaprogramming-breakfast/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114975837191315857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114975837191315857'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1149758340000#c114975837191315857' title=''/><author><name>Chiaroscuro</name><uri>http://www.blogger.com/profile/11467489170756712526</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114658283871821924</id><published>2006-05-02T17:13:00.000+02:00</published><updated>2006-05-02T17:13:00.000+02:00</updated><title type='text'>I'll provide a sample impl ASAP, sray tuned :)</title><content type='html'>I'll provide a sample impl ASAP, sray tuned :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114658283871821924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114658283871821924'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146582780000#c114658283871821924' title=''/><author><name>gabriele</name><uri>http://riffraff.blogsome.com</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114651254056087672</id><published>2006-05-01T21:42:00.000+02:00</published><updated>2006-05-01T21:42:00.000+02:00</updated><title type='text'>Hi Hyperstruct, you are right.  I pushed it too fa...</title><content type='html'>Hi Hyperstruct, you are right.  I pushed it too far and the trailing dot is not very DSL like.. I should have stopped just a little bit earlier.&lt;BR/&gt;&lt;BR/&gt;BlankSlate is cool, it removes most methods from a class to give free rein to method_missing users.  You are right, it is appropriate to use that too.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114651254056087672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114651254056087672'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146512520000#c114651254056087672' title=''/><author><name>Chiaroscuro</name><uri>http://www.blogger.com/profile/11467489170756712526</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114651194696231992</id><published>2006-05-01T21:32:00.000+02:00</published><updated>2006-05-01T21:32:00.000+02:00</updated><title type='text'>###############Killing the New###############def R...</title><content type='html'>###############&lt;BR/&gt;Killing the New&lt;BR/&gt;###############&lt;BR/&gt;&lt;BR/&gt;def Recipe *args&lt;BR/&gt;  Recipe.new *args&lt;BR/&gt;end&lt;BR/&gt;&lt;BR/&gt;now you can just do Recipe(..) and you get a recipe.  I call this a Concept Declarator.&lt;BR/&gt;&lt;BR/&gt;In a future post I'll show how to do it semi-autmatically with metaprogramming.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114651194696231992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114651194696231992'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146511920000#c114651194696231992' title=''/><author><name>Chiaroscuro</name><uri>http://www.blogger.com/profile/11467489170756712526</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114650778095386364</id><published>2006-05-01T20:23:00.000+02:00</published><updated>2006-05-01T20:23:00.000+02:00</updated><title type='text'>How do you get rid of 'new', as mentioned at the t...</title><content type='html'>How do you get rid of 'new', as mentioned at the top? &lt;BR/&gt;&lt;BR/&gt;i.e. &lt;BR/&gt;    Recipe("italian breakfast").caffe  1, :macchiato</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114650778095386364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114650778095386364'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146507780000#c114650778095386364' title=''/><author><name>Justin</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114650776452770890</id><published>2006-05-01T20:22:00.000+02:00</published><updated>2006-05-01T20:22:00.000+02:00</updated><title type='text'>How do you get rid of 'new', as mentioned at the t...</title><content type='html'>How do you get rid of 'new', as mentioned at the top? &lt;BR/&gt;&lt;BR/&gt;i.e. &lt;BR/&gt;    Recipe("italian breakfast").caffe  1, :macchiato</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114650776452770890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114650776452770890'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146507720000#c114650776452770890' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114649822963420567</id><published>2006-05-01T17:43:00.000+02:00</published><updated>2006-05-01T17:43:00.000+02:00</updated><title type='text'>I'm afraid that the parentheses and the trailing d...</title><content type='html'>I'm afraid that the parentheses and the trailing dot in:&lt;BR/&gt;&lt;BR/&gt;  "italian breakfast".consists_of.&lt;BR/&gt;    caffe (1 , :macchiato ).&lt;BR/&gt;    cornetto (1, :cioccolato)&lt;BR/&gt;&lt;BR/&gt;...spoil most most of the good work before it.  I'd probably go for&lt;BR/&gt;the usual instance_eval trick with something like:&lt;BR/&gt;&lt;BR/&gt;  "italian breakfast".consists_of {&lt;BR/&gt;    caffe    1, :macchiato&lt;BR/&gt;    cornetto 1, :cioccolato&lt;BR/&gt;  }&lt;BR/&gt;  &lt;BR/&gt;  recipe? "italian breakfast"&lt;BR/&gt;&lt;BR/&gt;(Sample mess, I mean, implementation at the bottom.)&lt;BR/&gt;&lt;BR/&gt;Also when playing with method missing you might want to start with a &lt;A HREF="http://onestepback.org/index.cgi/Tech/Ruby/BlankSlate.rdoc" REL="nofollow"&gt;blank slate&lt;/A&gt;, someone might always decide to #freeze a cornetto or do&lt;BR/&gt;something we wouldn't expect with a &lt;A HREF="http://www.elise.com/recipes/archives/000223traditional_hash.php" REL="nofollow"&gt;#hash&lt;/A&gt;. :-)&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;require 'singleton'&lt;BR/&gt;class RecipeCollection&lt;BR/&gt;  include Singleton&lt;BR/&gt;&lt;BR/&gt;  def self.&lt;&lt;(recipe)&lt;BR/&gt;    instance &lt;&lt; recipe&lt;BR/&gt;  end&lt;BR/&gt;&lt;BR/&gt;  def self.lookup(title)&lt;BR/&gt;    instance.lookup(title)&lt;BR/&gt;  end&lt;BR/&gt;&lt;BR/&gt;  def &lt;&lt;(recipe)&lt;BR/&gt;    @recipes ||= []&lt;BR/&gt;    @recipes &lt;&lt; recipe&lt;BR/&gt;  end&lt;BR/&gt;&lt;BR/&gt;  def lookup(title)&lt;BR/&gt;    @recipes.find { |r| r.title == title }&lt;BR/&gt;  end&lt;BR/&gt;end&lt;BR/&gt;&lt;BR/&gt;class Recipe&lt;BR/&gt;  def initialize(title, &amp;ingredients_desc)&lt;BR/&gt;    @title, @ingredients = title, {}&lt;BR/&gt;    instance_eval(&amp;ingredients_desc)&lt;BR/&gt;    RecipeCollection &lt;&lt; self&lt;BR/&gt;  end&lt;BR/&gt;  attr_reader :title&lt;BR/&gt;&lt;BR/&gt;  def method_missing(id, *args)&lt;BR/&gt;    @ingredients[id.to_s] = args&lt;BR/&gt;  end&lt;BR/&gt;&lt;BR/&gt;  def to_s&lt;BR/&gt;    @title + ":\n" +&lt;BR/&gt;      @ingredients.collect do |name, description|&lt;BR/&gt;      description.join(' ') + ' ' + name&lt;BR/&gt;      end.join("\n")&lt;BR/&gt;  end&lt;BR/&gt;end&lt;BR/&gt;&lt;BR/&gt;class String&lt;BR/&gt;  def consists_of(&amp;ingredients_desc)&lt;BR/&gt;    Recipe.new(self, &amp;ingredients_desc)&lt;BR/&gt;  end&lt;BR/&gt;end&lt;BR/&gt;&lt;BR/&gt;def recipe?(name)&lt;BR/&gt;  puts RecipeCollection.lookup(name)&lt;BR/&gt;end</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114649822963420567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114649822963420567'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146498180000#c114649822963420567' title=''/><author><name>hyperstruct</name><uri>http://blog.hyperstruct.net</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114642342222506491</id><published>2006-04-30T20:57:00.000+02:00</published><updated>2006-04-30T20:57:00.000+02:00</updated><title type='text'>Very inventive Gabriele!so.. three, two and so on ...</title><content type='html'>Very inventive Gabriele!&lt;BR/&gt;&lt;BR/&gt;so.. three, two and so on are implicit methods that get caught by method_missing. 'of' is a nil variable that doen't get used.. or did you miss some "." when copying the code here?&lt;BR/&gt;&lt;BR/&gt;or is it supposed to be three(of(sliced_bread()) with a cascade of method_missings being called?&lt;BR/&gt;&lt;BR/&gt;Can you give us a sample implementation?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114642342222506491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114642342222506491'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146423420000#c114642342222506491' title=''/><author><name>Chiaroscuro</name><uri>http://www.blogger.com/profile/11467489170756712526</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114641100708760552</id><published>2006-04-30T17:30:00.000+02:00</published><updated>2006-04-30T17:30:00.000+02:00</updated><title type='text'>Brilliant! Your insightful explanation is extremel...</title><content type='html'>Brilliant! Your insightful explanation is extremely clear, I've just realized that I still have a lot to learn about the great Ruby! :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114641100708760552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114641100708760552'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146411000000#c114641100708760552' title=''/><author><name>federico feroldi</name><uri>http://www.pixzone.com/blog</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-16766120.post-114638775876643165</id><published>2006-04-30T11:02:00.000+02:00</published><updated>2006-04-30T11:02:00.000+02:00</updated><title type='text'>I was thinking of taking yet another route: (brack...</title><content type='html'>I was thinking of taking yet another route: &lt;BR/&gt;(brackets, fur to non-meaningfulness of do..end in this case)&lt;BR/&gt;&lt;BR/&gt;shopping_list_for "BLT sandwiches" { &lt;BR/&gt; three of sliced_bread &lt;BR/&gt; two of lettuce &lt;BR/&gt; six of tomatoes &lt;BR/&gt; four of bacon &lt;BR/&gt;}&lt;BR/&gt;&lt;BR/&gt;This requires you to turn down $VERBOSE or you'll get warnings. &lt;BR/&gt;Obviously you can use add #of to Fixnum to sidestep the issue, or you can remove it completely.&lt;BR/&gt;&lt;BR/&gt;Eliminating semicolons is easy once you evaluate the block in a context where method_missing is just returning the called symbol.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114638775876643165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16766120/114631722061726022/comments/default/114638775876643165'/><link rel='alternate' type='text/html' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html?showComment=1146387720000#c114638775876643165' title=''/><author><name>gabriele renzi</name><uri>http://riffraff.blogsome.com</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://liquiddevelopment.blogspot.com/2006/04/twisting-and-shaping-dsls-using-ruby.html' ref='tag:blogger.com,1999:blog-16766120.post-114631722061726022' source='http://www.blogger.com/feeds/16766120/posts/default/114631722061726022' type='text/html'/></entry></feed>