Sha256: e771f1675eed09eaa3add43cbc41777afe2e97e93d48786e2b4e98951de7228e

Contents?: true

Size: 1.1 KB

Versions: 5

Compression:

Stored size: 1.1 KB

Contents

Dir.chdir(File.dirname(__FILE__)) do
  require './request_handler'
  require './extension'
  require './yodel'
  require '../middleware/public_assets' if Yodel.env.development?
end

class Application < Rack::Builder
  def initialize
    super
    
    # boot
    Yodel.config.logger.info "Yodel starting up" if Yodel.env.production?
    Dir.chdir(Yodel.config.sites_root)
    Yodel.load_extensions
    
    # setup middleware
    use Rack::ShowExceptions if Yodel.env.development?
    use ErrorPages
    use Rack::Session::Cookie, key: Yodel.config.session_key, secret: Yodel.config.session_secret
    use Rack::NestedParams
    use Rack::MethodOverride
    use SiteDetector
    use PublicAssets if Yodel.env.development?
    
    # FIXME: for production, load layouts once
    if Yodel.env.production?
      Site.all.each {|site| Layout.reload_layouts(site)}
    end
    
    # initialise a rack endpoint
    run RequestHandler.new
    @app = to_app
    
    # boot complete
    unless Yodel.env.development?
      Yodel.config.logger.info "Yodel startup complete"
    end
  end

  def call(env)
    @app.call(env)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
yodel-0.0.7 lib/yodel/application/application.rb
yodel-0.0.4 lib/yodel/application/application.rb
yodel-0.0.3 lib/yodel/application/application.rb
yodel-0.0.2 lib/yodel/application/application.rb
yodel-0.0.1 lib/yodel/application/application.rb