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
102 103 104 |
# File 'lib/middleman-core/core_extensions/request.rb', line 102 def call(env) prototype.call(env) end |
#inst(&block) ⇒ Middleman::Application
Get the static instance
48 49 50 51 52 53 54 |
# File 'lib/middleman-core/core_extensions/request.rb', line 48 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
61 62 63 |
# File 'lib/middleman-core/core_extensions/request.rb', line 61 def inst=(inst) @inst = inst end |
#map(map, &block) ⇒ void
This method returns an undefined value.
Add Rack App mapped to specific path
119 120 121 122 |
# File 'lib/middleman-core/core_extensions/request.rb', line 119 def map(map, &block) @mappings ||= [] @mappings << [map, block] end |
#prototype ⇒ Rack::Builder
Prototype app. Used in config.ru
94 95 96 97 |
# File 'lib/middleman-core/core_extensions/request.rb', line 94 def prototype reset! to_rack_app end |
#reset! ⇒ Object
Reset Rack setup
40 41 42 |
# File 'lib/middleman-core/core_extensions/request.rb', line 40 def reset! @rack_app = nil end |
#to_rack_app(&block) ⇒ Rack::Builder
Return built Rack app
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/middleman-core/core_extensions/request.rb', line 69 def to_rack_app(&block) @rack_app ||= begin app = ::Rack::Builder.new app.use Rack::Lint app.use Rack::Head Array(@middleware).each do |klass, , block| 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
110 111 112 113 |
# File 'lib/middleman-core/core_extensions/request.rb', line 110 def use(middleware, *args, &block) @middleware ||= [] @middleware << [middleware, args, block] end |