Class: Junior::Application
- Inherits:
-
Object
- Object
- Junior::Application
- Defined in:
- lib/junior/application.rb
Instance Attribute Summary collapse
-
#app ⇒ Object
Returns the value of attribute app.
-
#env ⇒ Object
Returns the value of attribute env.
-
#request ⇒ Object
Returns the value of attribute request.
-
#response ⇒ Object
Returns the value of attribute response.
Class Method Summary collapse
- .call(env) ⇒ Object
- .development? ⇒ Boolean
- .middleware ⇒ Object
- .new(*args, &block) ⇒ Object
- .production? ⇒ Boolean
- .prototype ⇒ Object
- .reset! ⇒ Object
- .set(option, value = self) ⇒ Object
- .test? ⇒ Boolean
- .use(middleware, *args, &block) ⇒ Object
Instance Method Summary collapse
- #call(env) ⇒ Object
- #call!(env) ⇒ Object
-
#initialize(app = nil) ⇒ Application
constructor
A new instance of Application.
Constructor Details
#initialize(app = nil) ⇒ Application
Returns a new instance of Application.
7 8 9 |
# File 'lib/junior/application.rb', line 7 def initialize(app = nil) @app = app end |
Instance Attribute Details
#app ⇒ Object
Returns the value of attribute app.
5 6 7 |
# File 'lib/junior/application.rb', line 5 def app @app end |
#env ⇒ Object
Returns the value of attribute env.
5 6 7 |
# File 'lib/junior/application.rb', line 5 def env @env end |
#request ⇒ Object
Returns the value of attribute request.
5 6 7 |
# File 'lib/junior/application.rb', line 5 def request @request end |
#response ⇒ Object
Returns the value of attribute response.
5 6 7 |
# File 'lib/junior/application.rb', line 5 def response @response end |
Class Method Details
.call(env) ⇒ Object
49 50 51 |
# File 'lib/junior/application.rb', line 49 def call(env) prototype.call(env) end |
.development? ⇒ Boolean
53 |
# File 'lib/junior/application.rb', line 53 def development?; environment == :development end |
.middleware ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/junior/application.rb', line 57 def middleware if superclass.respond_to?(:middleware) superclass.middleware + ( @middleware || [] ) else @middleware || [] end end |
.new(*args, &block) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/junior/application.rb', line 40 def new(*args, &block) builder = Rack::Builder.new middleware.each { |middleware, args, block| builder.use(middleware, *args, &block) } builder.run super builder.to_app end |
.production? ⇒ Boolean
54 |
# File 'lib/junior/application.rb', line 54 def production?; environment == :production end |
.prototype ⇒ Object
36 37 38 |
# File 'lib/junior/application.rb', line 36 def prototype @prototype ||= new end |
.reset! ⇒ Object
31 32 33 34 |
# File 'lib/junior/application.rb', line 31 def reset! @middleware = [] @prototype = nil end |
.set(option, value = self) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/junior/application.rb', line 69 def set(option, value=self) if value.kind_of?(Proc) (option, &value) ("#{option}?") { !!__send__(option) } ("#{option}=") { |val| set(option, Proc.new{val}) } elsif value == self && option.respond_to?(:to_hash) option.to_hash.each { |k,v| set(k, v) } elsif respond_to?("#{option}=") __send__ "#{option}=", value else set option, Proc.new{value} end self end |
.test? ⇒ Boolean
55 |
# File 'lib/junior/application.rb', line 55 def test?; environment == :test end |
.use(middleware, *args, &block) ⇒ Object
65 66 67 |
# File 'lib/junior/application.rb', line 65 def use(middleware, *args, &block) @middleware << [ middleware, args, block ] end |
Instance Method Details
#call(env) ⇒ Object
11 12 13 |
# File 'lib/junior/application.rb', line 11 def call(env) dup.call!(env) end |
#call!(env) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/junior/application.rb', line 15 def call!(env) @env = env @request = Rack::Request.new(env) @response = Rack::Response.new #puts env.inspect Dispatcher.dispatch!(self) status, header, body = @response.finish [status, header, body] end |