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
5:     def self.build(name, &block)
6:       COMPILED[name] ||= new(name, &block)
7:     end
build!(name, &block) click to toggle source
    # File lib/innate/middleware_compiler.rb, line 9
 9:     def self.build!(name, &block)
10:       COMPILED[name] = new(name, &block)
11:     end
new(name) click to toggle source
    # File lib/innate/middleware_compiler.rb, line 15
15:     def initialize(name)
16:       @name = name.to_sym
17:       @middlewares = []
18:       @compiled = nil
19:       yield(self) if block_given?
20:     end

Public Instance Methods

apps(*middlewares) click to toggle source
    # File lib/innate/middleware_compiler.rb, line 26
26:     def apps(*middlewares)
27:       @middlewares.concat(middlewares.map{|mw| [mw, [], nil]})
28:     end
call(env) click to toggle source
    # File lib/innate/middleware_compiler.rb, line 50
50:     def call(env)
51:       compile
52:       @compiled.call(env)
53:     end
cascade(*apps) click to toggle source
    # File lib/innate/middleware_compiler.rb, line 34
34:     def cascade(*apps)
35:       @app = Rack::Cascade.new(apps, [404, 405])
36:     end
compile() click to toggle source
    # File lib/innate/middleware_compiler.rb, line 55
55:     def compile
56:       @compiled ? self : compile!
57:     end
compile!() click to toggle source
    # File lib/innate/middleware_compiler.rb, line 59
59:     def compile!
60:       @compiled = @middlewares.reverse.
61:         inject(@app){|app, (middleware, args, block)|
62:           middleware.new(app, *args, &block) }
63:       self
64:     end
innate(app = Innate::DynaMap, options = Innate.options) click to toggle source

Default application for Innate

    # File lib/innate/middleware_compiler.rb, line 39
39:     def innate(app = Innate::DynaMap, options = Innate.options)
40:       roots, publics = options[:roots], options[:publics]
41: 
42:       joined = roots.map{|root| publics.map{|public| ::File.join(root, public)}}
43: 
44:       apps = joined.flatten.map{|public_root| RackFileWrapper.new(public_root) }
45:       apps << Current.new(Route.new(app), Rewrite.new(app))
46: 
47:       cascade(*apps)
48:     end
run(app) click to toggle source
    # File lib/innate/middleware_compiler.rb, line 30
30:     def run(app)
31:       @app = app
32:     end
use(middleware, *args, &block) click to toggle source
    # File lib/innate/middleware_compiler.rb, line 22
22:     def use(middleware, *args, &block)
23:       @middlewares << [middleware, args, block]
24:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.