How DSL works on Ruby

Programming Patterns