Class: Fenix::Application
- Inherits:
-
Object
- Object
- Fenix::Application
- Includes:
- Rendering
- Defined in:
- lib/fenix/core/application.rb
Instance Attribute Summary collapse
-
#env ⇒ Object
readonly
Returns the value of attribute env.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
Class Method Summary collapse
- .disable(*options) ⇒ Object
- .enable(*options) ⇒ Object
- .extensions ⇒ Array
- .new(*arguments, &block) ⇒ Object
- .register(*extensions) ⇒ Object
- .routes ⇒ Hash
- .settings ⇒ Fenix::Settings
- .stack ⇒ Rack::Builder
Instance Method Summary collapse
- #call(env) ⇒ Object
- #cookies ⇒ Hash
- #halt(status = 500) ⇒ Object
- #locale ⇒ Symbol
- #logger ⇒ Object
- #params ⇒ Hash
- #redirect(uri, **notifications) ⇒ Object
- #session ⇒ Hash
- #settings ⇒ Fenix::Settings
Instance Attribute Details
#env ⇒ Object (readonly)
Returns the value of attribute env.
9 10 11 |
# File 'lib/fenix/core/application.rb', line 9 def env @env end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
10 11 12 |
# File 'lib/fenix/core/application.rb', line 10 def request @request end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
11 12 13 |
# File 'lib/fenix/core/application.rb', line 11 def response @response end |
Class Method Details
.disable(*options) ⇒ Object
75 76 77 |
# File 'lib/fenix/core/application.rb', line 75 def disable(*) .each { |option| settings[option] = false } end |
.enable(*options) ⇒ Object
63 64 65 |
# File 'lib/fenix/core/application.rb', line 63 def enable(*) .each { |option| settings[option] = true } end |
.extensions ⇒ Array
83 84 85 |
# File 'lib/fenix/core/application.rb', line 83 def extensions @_extensions ||= [] end |
.new(*arguments, &block) ⇒ Object
17 18 19 20 21 |
# File 'lib/fenix/core/application.rb', line 17 def new(*arguments, &block) instance = super(*arguments, &block) stack.run(instance) stack end |
.register(*extensions) ⇒ Object
96 97 98 99 100 101 102 |
# File 'lib/fenix/core/application.rb', line 96 def register(*extensions) self.extensions += extensions extensions.each do |extension| extension.registered(self) if extension.respond_to?(:registered) extend extension end end |
.routes ⇒ Hash
42 43 44 |
# File 'lib/fenix/core/application.rb', line 42 def routes @_routes ||= Hash.new { |hash, key| hash[key] = [] } end |
.settings ⇒ Fenix::Settings
109 110 111 |
# File 'lib/fenix/core/application.rb', line 109 def settings @_settings ||= Fenix::Settings.new end |
.stack ⇒ Rack::Builder
51 52 53 |
# File 'lib/fenix/core/application.rb', line 51 def stack @_stack ||= Rack::Builder.new end |
Instance Method Details
#call(env) ⇒ Object
178 179 180 181 182 183 184 185 |
# File 'lib/fenix/core/application.rb', line 178 def call(env) @env = env @request = Fenix::Request.new(env) @response = Fenix::Response.new dispatch @response.finish end |
#cookies ⇒ Hash
147 148 149 |
# File 'lib/fenix/core/application.rb', line 147 def request. end |
#halt(status = 500) ⇒ Object
172 173 174 175 |
# File 'lib/fenix/core/application.rb', line 172 def halt(status = 500) response.status = status throw :halt end |
#locale ⇒ Symbol
133 134 135 |
# File 'lib/fenix/core/application.rb', line 133 def locale I18n.locale end |
#logger ⇒ Object
153 154 155 |
# File 'lib/fenix/core/application.rb', line 153 def logger request.logger end |
#params ⇒ Hash
140 141 142 |
# File 'lib/fenix/core/application.rb', line 140 def params request.params end |
#redirect(uri, **notifications) ⇒ Object
159 160 161 162 163 164 165 166 167 168 |
# File 'lib/fenix/core/application.rb', line 159 def redirect(uri, **notifications) if env['HTTP_VERSION'] == 'HTTP/1.1' and env['REQUEST_METHOD'] != 'GET' status = 303 else status = 302 end response['Location'] = uri halt(status) end |
#session ⇒ Hash
126 127 128 |
# File 'lib/fenix/core/application.rb', line 126 def session env['rack.session'] end |
#settings ⇒ Fenix::Settings
119 120 121 |
# File 'lib/fenix/core/application.rb', line 119 def settings self.class.settings end |