# File lib/innate/middleware_compiler.rb, line 5 def self.build(name, &block) COMPILED[name] ||= new(name, &block) end
# File lib/innate/middleware_compiler.rb, line 26 def apps(*middlewares) @middlewares.concat(middlewares.map{|mw| [mw, [], nil]}) end
# File lib/innate/middleware_compiler.rb, line 50 def call(env) compile @compiled.call(env) end
# File lib/innate/middleware_compiler.rb, line 34 def cascade(*apps) @app = Rack::Cascade.new(apps) end
# File lib/innate/middleware_compiler.rb, line 55 def compile @compiled ? self : compile! end
# 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
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
Generated with the Darkfish Rdoc Generator 2.