class Freedom::Application

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method Freedom::BaseApplication::new
# File lib/freedom/core/application.rb, line 114
def initialize(options = {})
  super()
  @options = options.clone
  @middlewares = default_middlewares
  @rack_server = nil
end
start(options = {}) click to toggle source
# File lib/freedom/core/application.rb, line 110
def self.start(options = {})
  self.new(options).start
end

Public Instance Methods

add_middleware(middleware_class, *middleware_args) click to toggle source
# File lib/freedom/core/application.rb, line 141
def add_middleware(middleware_class, *middleware_args)
  @middlewares << [middleware_class, *middleware_args]
end
build() click to toggle source
# File lib/freedom/core/application.rb, line 125
def build
  builder = Rack::Builder.new(self)
  @middlewares.each do |middleware_array|
    builder.use(*middleware_array)
  end
  rack_options = @options
  rack_options[:app] = builder.to_app
  rack_options[:Port] = 5700 unless rack_options[:Port]
  @rack_server = Rack::Server.new(rack_options)
end
built?() click to toggle source
# File lib/freedom/core/application.rb, line 121
def built?
  !!@rack_server
end
start() click to toggle source
# File lib/freedom/core/application.rb, line 136
def start
  build unless built?
  @rack_server.start
end

Private Instance Methods

default_middlewares() click to toggle source
# File lib/freedom/core/application.rb, line 147
def default_middlewares
  [
    [Rack::CommonLogger, ::Logger.new(Config.log_file_name)],
    [Rack::Protection::PathTraversal],
  ]
end