Domain Specific Languages: Molding Ruby

Meta-programming