Class: Fenix::Application

Inherits:
Object
  • Object
show all
Includes:
Rendering
Defined in:
lib/fenix/core/application.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



9
10
11
# File 'lib/fenix/core/application.rb', line 9

def env
  @env
end

#requestObject (readonly)

Returns the value of attribute request.



10
11
12
# File 'lib/fenix/core/application.rb', line 10

def request
  @request
end

#responseObject (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

Examples:

disable :cache

Parameters:

  • Array<Symbol> (options)

Since:

  • 1.0.0



75
76
77
# File 'lib/fenix/core/application.rb', line 75

def disable(*options)
  options.each { |option| settings[option] = false }
end

.enable(*options) ⇒ Object

Examples:

enable :cache

Parameters:

  • Array<Symbol> (options)

Since:

  • 1.0.0



63
64
65
# File 'lib/fenix/core/application.rb', line 63

def enable(*options)
  options.each { |option| settings[option] = true }
end

.extensionsArray

Returns:

  • (Array)

Since:

  • 1.0.0



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

Examples:

register Fenix::Assets
register Fenix::Cookies

Parameters:

Since:

  • 1.0.0



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

.routesHash

Returns:

  • (Hash)

Since:

  • 1.0.0



42
43
44
# File 'lib/fenix/core/application.rb', line 42

def routes
  @_routes ||= Hash.new { |hash, key| hash[key] = [] }
end

.settingsFenix::Settings

Returns:

See Also:

Since:

  • 1.0.0



109
110
111
# File 'lib/fenix/core/application.rb', line 109

def settings
  @_settings ||= Fenix::Settings.new
end

.stackRack::Builder

Returns:

  • (Rack::Builder)

See Also:

Since:

  • 1.0.0



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

#cookiesHash

Returns:

  • (Hash)

Since:

  • 1.0.0



147
148
149
# File 'lib/fenix/core/application.rb', line 147

def cookies
  request.cookies
end

#halt(status = 500) ⇒ Object

Since:

  • 1.0.0



172
173
174
175
# File 'lib/fenix/core/application.rb', line 172

def halt(status = 500)
  response.status = status
  throw :halt
end

#localeSymbol

Returns:

  • (Symbol)

Since:

  • 1.0.0



133
134
135
# File 'lib/fenix/core/application.rb', line 133

def locale
  I18n.locale
end

#loggerObject

Since:

  • 1.0.0



153
154
155
# File 'lib/fenix/core/application.rb', line 153

def logger
  request.logger
end

#paramsHash

Returns:

  • (Hash)

Since:

  • 1.0.0



140
141
142
# File 'lib/fenix/core/application.rb', line 140

def params
  request.params
end

#redirect(uri, **notifications) ⇒ Object

Since:

  • 1.0.0



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

#sessionHash

Returns:

  • (Hash)

Since:

  • 1.0.0



126
127
128
# File 'lib/fenix/core/application.rb', line 126

def session
  env['rack.session']
end

#settingsFenix::Settings

Returns:

See Also:

Since:

  • 1.0.0



119
120
121
# File 'lib/fenix/core/application.rb', line 119

def settings
  self.class.settings
end