summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rack/builder.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/rack/builder.rb b/lib/rack/builder.rb
index c9c45048..e7ba5a0f 100644
--- a/lib/rack/builder.rb
+++ b/lib/rack/builder.rb
@@ -109,8 +109,11 @@ module Rack
# Evaluate the given +builder_script+ string in the context of
# a Rack::Builder block, returning a Rack application.
def self.new_from_string(builder_script, file = "(rackup)")
- eval "Rack::Builder.new {\n" + builder_script + "\n}.to_app",
- TOPLEVEL_BINDING, file, 0
+ builder = self.new
+
+ builder.instance_eval(builder_script, file)
+
+ return builder.to_app
end
# Initialize a new Rack::Builder instance. +default_app+ specifies the