summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-02-01 19:25:27 +1300
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-02-01 19:25:27 +1300
commit5a1783244e642f733a35ab35dcd740d69dbfe4d2 (patch)
tree0e160e486c3743261b0bcc23a9e240857c3607ee
parentf2d2df4016a906beec755b63b4edfcc07b58ee05 (diff)
downloadrack-rework-builder.tar.gz
Prefer `instance_eval` rather than `eval`.rework-builder
-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