Parent

Innate::MiddlewareCompiler

Constants

COMPILED

Attributes

middlewares[R]
name[R]

Public Class Methods

build(name, &block) click to toggle source
# File lib/innate/middleware_compiler.rb, line 5
def self.build(name, &block)
  COMPILED[name] ||= new(name, &block)
end
build!(name, &block) click to toggle source
# File lib/innate/middleware_compiler.rb, line 9
def self.build!(name, &block)
  COMPILED[name] = new(name, &block)
end
new(name) click to toggle source
# File lib/innate/middleware_compiler.rb, line 15
def initialize(name)
  @name = name.to_sym
  @middlewares = []
  @compiled = nil
  yield(self) if block_given?
end

Public Instance Methods

apps(*middlewares) click to toggle source
# File lib/innate/middleware_compiler.rb, line 26
def apps(*middlewares)
  @middlewares.concat(middlewares.map{|mw| [mw, [], nil]})
end
call(env) click to toggle source
# File lib/innate/middleware_compiler.rb, line 50
def call(env)
  compile
  @compiled.call(env)
end
cascade(*apps) click to toggle source
# File lib/innate/middleware_compiler.rb, line 34
def cascade(*apps)
  @app = Rack::Cascade.new(apps)
end
compile() click to toggle source
# File lib/innate/middleware_compiler.rb, line 55
def compile
  @compiled ? self : compile!
end
compile!() click to toggle source
# File lib/innate/middleware_compiler.rb, line 59
def compile!
  @compiled = @middlewares.reverse.
    inject(@app){|app, (middleware, args, block)|
      middleware.new(app, *args, &block) }
  self
end
innate(app = Innate::DynaMap, options = Innate.options) click to toggle source

Default application for Innate

# File lib/innate/middleware_compiler.rb, line 39
def innate(app = Innate::DynaMap, options = Innate.options)
  roots, publics = options[:roots], options[:publics]

  joined = roots.map{|root| publics.map{|public| ::File.join(root, public)}}

  apps = joined.flatten.map{|public_root| Rack::File.new(public_root) }
  apps << Current.new(Route.new(app), Rewrite.new(app))

  cascade(*apps)
end
run(app) click to toggle source
# File lib/innate/middleware_compiler.rb, line 30
def run(app)
  @app = app
end
use(middleware, *args, &block) click to toggle source
# File lib/innate/middleware_compiler.rb, line 22
def use(middleware, *args, &block)
  @middlewares << [middleware, args, block]
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.