Module: Mojito::Controllers::Runtime
- Defined in:
- lib/mojito/controllers/runtime.rb,
lib/mojito/controllers/runtime/path.rb,
lib/mojito/controllers/runtime/methods.rb,
lib/mojito/controllers/runtime/session.rb,
lib/mojito/controllers/runtime/url_scheme.rb,
lib/mojito/controllers/runtime/environment.rb,
lib/mojito/controllers/runtime/virtual_host.rb
Defined Under Namespace
Modules: ClassMethods, Environment, Methods, Path, Session, UrlScheme, VirtualHost
Class Method Summary collapse
Instance Method Summary collapse
-
#__dispatch ⇒ Object
Dispatches the current request to the matching routes.
-
#on(*matchers, &block) ⇒ Object
Defines a route which is matched when all given matchers evaluate to
true
.
Class Method Details
.included(type) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/mojito/controllers/runtime.rb', line 12 def self.included(type) type.extend ClassMethods type.instance_exec do include Environment include Methods include Path include UrlScheme include VirtualHost end end |
Instance Method Details
#__dispatch ⇒ Object
Dispatches the current request to the matching routes.
53 54 55 56 |
# File 'lib/mojito/controllers/runtime.rb', line 53 def __dispatch instance_exec &self.class.routes if self.class.routes [404, { 'Content-Type' => 'application/octet-stream' }, []] end |
#on(*matchers, &block) ⇒ Object
Defines a route which is matched when all given matchers evaluate to true
.
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/mojito/controllers/runtime.rb', line 25 def on(*matchers, &block) env_backup = env.dup param_size = request.captures.length return unless matchers.all? {|m| __match?(m) } params = request.captures[param_size..-1][0..block.arity].collect {|p| Rack::Utils.unescape(p) } instance_exec *params, &block ensure @__env = env_backup request.instance_exec { @env = env_backup } end |