Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions lib/rack/flash.rb
Original file line number Diff line number Diff line change
@@ -1,27 +1,34 @@
module Rack
class Builder
attr :ins
def use(middleware, *args, &block)
# Begin monkey patch
middleware.instance_variable_set "@rack_builder", self
def middleware.rack_builder
@rack_builder
end
@ins << lambda { |app|
middleware.new(app, *args, &block)
}
# End monkey patch

if @map
mapping, @map = @map, nil
@use << proc { |app| generate_map app, mapping }
end
@use << proc { |app| middleware.new(app, *args, &block) }
end

def run(app)
# Begin monkey patch
klass = app.class
klass.instance_variable_set "@rack_builder", self
def klass.rack_builder
@rack_builder
end
@ins << app #lambda { |nothing| app }
# End monkey patch

@run = app
end

def leaf_app
ins.last
@run
end
end
end
Expand Down