mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
Replace define_methods with Struct.new blocks
This commit is contained in:
parent
f39fad4d66
commit
af5d49b1ae
1 changed files with 19 additions and 20 deletions
|
@ -112,16 +112,16 @@ shared_examples_for 'any rack application' do
|
||||||
|
|
||||||
it 'should not leak changes to env' do
|
it 'should not leak changes to env' do
|
||||||
klass = described_class
|
klass = described_class
|
||||||
detector = Struct.new(:app)
|
detector = Struct.new(:app) do
|
||||||
|
def call(env)
|
||||||
detector.send(:define_method, :call) do |env|
|
was = env.dup
|
||||||
was = env.dup
|
res = app.call(env)
|
||||||
res = app.call(env)
|
was.each do |k,v|
|
||||||
was.each do |k,v|
|
next if env[k] == v
|
||||||
next if env[k] == v
|
fail "env[#{k.inspect}] changed from #{v.inspect} to #{env[k].inspect}"
|
||||||
fail "env[#{k.inspect}] changed from #{v.inspect} to #{env[k].inspect}"
|
end
|
||||||
|
res
|
||||||
end
|
end
|
||||||
res
|
|
||||||
end
|
end
|
||||||
|
|
||||||
mock_app do
|
mock_app do
|
||||||
|
@ -137,23 +137,22 @@ shared_examples_for 'any rack application' do
|
||||||
|
|
||||||
it 'allows passing on values in env' do
|
it 'allows passing on values in env' do
|
||||||
klass = described_class
|
klass = described_class
|
||||||
detector = Struct.new(:app)
|
detector = Struct.new(:app) do
|
||||||
changer = Struct.new(:app)
|
def call(env)
|
||||||
|
app.call(env)
|
||||||
detector.send(:define_method, :call) do |env|
|
end
|
||||||
app.call(env)
|
end
|
||||||
|
changer = Struct.new(:app) do
|
||||||
|
def call(env)
|
||||||
|
env['foo.bar'] = 42
|
||||||
|
app.call(env)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
expect_any_instance_of(detector).to receive(:call) { |env|
|
expect_any_instance_of(detector).to receive(:call) { |env|
|
||||||
expect(env['foo.bar']).to eq 42
|
expect(env['foo.bar']).to eq 42
|
||||||
}.and_call_original
|
}.and_call_original
|
||||||
|
|
||||||
|
|
||||||
changer.send(:define_method, :call) do |env|
|
|
||||||
env['foo.bar'] = 42
|
|
||||||
app.call(env)
|
|
||||||
end
|
|
||||||
|
|
||||||
mock_app do
|
mock_app do
|
||||||
use Rack::Head
|
use Rack::Head
|
||||||
use(Rack::Config) { |e| e['rack.session'] ||= {}}
|
use(Rack::Config) { |e| e['rack.session'] ||= {}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue