class Kingfisher::App

Attributes

builder[R]
config[R]
router[R]

Public Class Methods

new(router, config) click to toggle source
# File lib/kingfisher/app.rb, line 3
def initialize(router, config)
  @router = router
  @config = config
  @builder = Rack::Builder.new

  config.middlewares.each do |middleware|
    builder.use middleware.klass, *middleware.args, &middleware.block
  end

  builder.run(router)

  run_initializers
end

Public Instance Methods

call(env) click to toggle source
# File lib/kingfisher/app.rb, line 17
def call(env)
  request = Rack::Request.new(env)
  request.env["repo"] = repo

  builder.call(env)
end

Private Instance Methods

repo() click to toggle source
# File lib/kingfisher/app.rb, line 31
def repo
  @_repo ||= config.repo.new(config.backend)
end
root() click to toggle source
# File lib/kingfisher/app.rb, line 27
def root
  config.root
end
run_initializers() click to toggle source
# File lib/kingfisher/app.rb, line 35
def run_initializers
  Dir.glob("#{root}/config/initializers/*.rb").each do |file|
    require file
  end
end