class Ki::Ki

Constants

PUBLIC_PATH
VIEWS_PATH

Public Class Methods

connect() click to toggle source
# File lib/ki/ki.rb, line 39
def self.connect
  KiConfig.instance.read Ki.environment
  Orm::Db.instance.establish_connection
end
environment() click to toggle source
# File lib/ki/ki.rb, line 44
def self.environment
  ENV['RACK_ENV'] || 'development'
end
new() click to toggle source
# File lib/ki/ki.rb, line 8
def initialize
  Ki.connect

  @app = Rack::Builder.new do
    use Middleware::InitMiddleware

    if Dir.exist?('logs')
      logfile = ::File.join('logs', 'requests.log')
      logger = ::Logger.new(logfile, 'weekly')
      KiLogger.instance.init(logger)
      use Rack::CommonLogger, logger
    end

    use Rack::Parser, content_types: {
      'application/json' => proc { |body| ::MultiJson.decode body }
    }
    if KiConfig.instance.cors?
      use Rack::Cors do
        allow do
          origins '*'
          resource '*', headers: :any, methods: %i[get search put post delete]
        end
      end
    end
    KiConfig.instance.middleware.each do |middleware|
      use middleware
    end
    run KiApp.new
  end
end

Public Instance Methods

call(env) click to toggle source
# File lib/ki/ki.rb, line 48
def call(env)
  @app.call env
end