(More) safely evaluate Ruby DSLs with cleanroom