Untitled - Seth Vargo
Ruby is an excellent programming language from creating and managing custom DSLs, but how can we securely evaluate a DSL while explicitly controlling the methods exposed to the user? Our good friends instance_eval and instance_exec are great, but they expose all methods - public, protected, and private - to the user. Even worse, they expose the ability to accidentally alter the behavior of the system! The cleanroom pattern is a safe, convenient, Ruby-like approach for limiting the information exposed by a DSL while giving users the ability to write awesome code.