module Locomotive::Steam::Server

Public Class Methods

configuration() click to toggle source
# File lib/locomotive/steam/server.rb, line 89
def configuration
  Locomotive::Steam.configuration
end
default_middlewares() click to toggle source
# File lib/locomotive/steam/server.rb, line 24
def default_middlewares
  server, configuration = self, self.configuration

  -> (stack) {
    use(Rack::Rewrite) { r301 %r{^/(.*)/$}, '/$1' }
    use Middlewares::Favicon

    if configuration.serve_assets
      use ::Rack::Static, {
        root: configuration.asset_path,
        urls: ['/images', '/fonts', '/samples', '/sites', '/misc', '/others', '/pdfs', '/media']
      }
      use Middlewares::DynamicAssets, {
        root:   configuration.asset_path,
        minify: configuration.minify_assets
      }
    end

    use Dragonfly::Middleware, :steam

    use Rack::Lint
    use Rack::Session::Moneta, configuration.moneta

    use Rack::MiniProfiler if ENV['PROFILER']

    server.steam_middleware_stack.each { |k| use k }
  }
end
steam_middleware_stack() click to toggle source
# File lib/locomotive/steam/server.rb, line 53
def steam_middleware_stack
  [
    Middlewares::DefaultEnv,
    Middlewares::Site,
    Middlewares::Logging,
    Middlewares::EncodedLinkRedirection,
    Middlewares::UrlRedirection,
    Middlewares::Robots,
    Middlewares::Timezone,
    Middlewares::EntrySubmission,
    Middlewares::Locale,
    Middlewares::LocaleRedirection,
    Middlewares::Redirection,
    Middlewares::PageNotFound,
    Middlewares::Auth,
    Middlewares::ImpersonatedEntry,
    Middlewares::PrivateAccess,
    Middlewares::Path,
    Middlewares::Page,
    Middlewares::Cache,
    Middlewares::Section,
    Middlewares::Sitemap,
    Middlewares::TemplatizedPage
  ]
end
to_app() click to toggle source
# File lib/locomotive/steam/server.rb, line 79
def to_app
  stack = configuration.middleware

  Rack::Builder.new do
    stack.inject(self)

    run Middlewares::Renderer.new(nil)
  end
end