class Odex::Base

Odex Base

Constants

METHODS

Public Class Methods

after_proc(&block) click to toggle source
# File lib/odex/app.rb, line 213
def after_proc(&block)
  hook_after << Proc.new(&block)
end
before_proc(&block) click to toggle source
# File lib/odex/app.rb, line 209
def before_proc(&block)
  hook_before << Proc.new(&block)
end
group(url, app=nil, &block) click to toggle source
# File lib/odex/app.rb, line 200
def group(url, app=nil, &block)
  scope  = self.c
  app ||= Class.new(self.superclass) do
    self.c = scope
    class_eval(&block)
  end
  map[url] = app
end
helpers(*args, &block) click to toggle source
# File lib/odex/app.rb, line 228
    def helpers(*args, &block)
      args << Module.new(&block) if block_given?
      args.each do |module|
        c.send(:include, module)
      end
    end

    def route(path, options, &block)
      self.route_defs << [path, options, Proc.new(&block)]
    end

  end
end
import(*extensions) click to toggle source
# File lib/odex/app.rb, line 221
def import(*extensions)
  extensions.each do |ext|
    extend ext
    ext.module_is_registered(self) if ext.respond_to?(:module_is_registered)
  end
end
new(app=nil) click to toggle source
# File lib/odex/app.rb, line 164
def initialize(app=nil)
  builder = odex_rack_builder
  builder.run Router.new({
    :c    => self.class.c,
    :route_defs     => self.class.route_defs,
    :hook_before   => self.class.hook_before,
    :hook_after    => self.class.hook_after,
    :fallback       => app
  })

  @app = builder.to_app
end
route(path, options, &block) click to toggle source
# File lib/odex/app.rb, line 235
def route(path, options, &block)
  self.route_defs << [path, options, Proc.new(&block)]
end
use(middleware, *args, &block) click to toggle source
# File lib/odex/app.rb, line 217
def use(middleware, *args, &block)
  builder.use(middleware, *args, &block)
end

Public Instance Methods

call(env) click to toggle source
# File lib/odex/app.rb, line 187
def call env
  @app.call env
end
odex_rack_builder() click to toggle source
# File lib/odex/app.rb, line 177
def odex_rack_builder
  rack_builder = Odex::OdexBuilder.new
  self.class.map.each do |url, map_class|
    rack_builder.map(url) do
      use map_class
    end
  end
  rack_builder
end