Module: Middleman::CoreExtensions::Request::ClassMethods
- Defined in:
- lib/middleman-core/core_extensions/request.rb
Instance Method Summary collapse
-
#call(env) ⇒ Object
Call prototype, use in config.ru.
-
#inst(&block) ⇒ Middleman::Application
Get the static instance.
-
#inst=(inst) ⇒ void
Set the shared instance.
-
#map(map, &block) ⇒ void
Add Rack App mapped to specific path.
-
#prototype ⇒ Rack::Builder
Prototype app.
-
#reset! ⇒ Object
Reset Rack setup.
-
#to_rack_app(&block) ⇒ Rack::Builder
Return built Rack app.
-
#use(middleware, *args, &block) ⇒ void
Use Rack middleware.
Instance Method Details
#call(env) ⇒ Object
Call prototype, use in config.ru
100 101 102 |
# File 'lib/middleman-core/core_extensions/request.rb', line 100 def call(env) prototype.call(env) end |
#inst(&block) ⇒ Middleman::Application
Get the static instance
47 48 49 50 51 52 53 |
# File 'lib/middleman-core/core_extensions/request.rb', line 47 def inst(&block) @inst ||= begin mm = new(&block) mm.run_hook :ready mm end end |
#inst=(inst) ⇒ void
This method returns an undefined value.
Set the shared instance
60 61 62 |
# File 'lib/middleman-core/core_extensions/request.rb', line 60 def inst=(inst) @inst = inst end |
#map(map, &block) ⇒ void
This method returns an undefined value.
Add Rack App mapped to specific path
117 118 119 120 |
# File 'lib/middleman-core/core_extensions/request.rb', line 117 def map(map, &block) @mappings ||= [] @mappings << [map, block] end |
#prototype ⇒ Rack::Builder
Prototype app. Used in config.ru
92 93 94 95 |
# File 'lib/middleman-core/core_extensions/request.rb', line 92 def prototype reset! to_rack_app end |
#reset! ⇒ Object
Reset Rack setup
39 40 41 |
# File 'lib/middleman-core/core_extensions/request.rb', line 39 def reset! @rack_app = nil end |
#to_rack_app(&block) ⇒ Rack::Builder
Return built Rack app
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/middleman-core/core_extensions/request.rb', line 68 def to_rack_app(&block) @rack_app ||= begin app = ::Rack::Builder.new app.use Rack::Lint Array(@middleware).each do |klass, , blockm| app.use(klass, *, &block) end inner_app = inst(&block) app.map("/") { run inner_app } Array(@mappings).each do |path, block| app.map(path, &block) end app end end |
#use(middleware, *args, &block) ⇒ void
This method returns an undefined value.
Use Rack middleware
108 109 110 111 |
# File 'lib/middleman-core/core_extensions/request.rb', line 108 def use(middleware, *args, &block) @middleware ||= [] @middleware << [middleware, args, block] end |