Writing DSLs in Ruby Without Monkeypatching Object | Hacker News Reader