Sha256: d9edb721fc4729cdfdec49d8b847d7225b72f116cccc2952ab1ee1b86eb2fe25

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

require 'rack/builder'
require 'rack/commonlogger'
require 'low/rack/exceptions'
require 'low/rack/rack_errors'
require 'low/rack/log_level'
require 'low/rack/request_logger'

require 'useless/doc/router'
require 'useless/doc/rack/ui'
require 'useless/doc/rack/css'
require 'useless/doc/rack/url'
require 'useless/doc/rack/subject'
require 'useless/doc/rack/html'

module Useless
  module Doc
    class Rack
      def initialize(router = nil)
        @router = router || Useless::Doc::Router.default
      end

      def call(env)
        env['useless.doc.router'] ||= @router
        app.call(env)
      end

      private

      def app
        @app ||= begin
          ::Rack::Builder.app do
            use Low::Rack::Exceptions, key: 'useless.doc.logger'
            use Low::Rack::RackErrors
            use Low::Rack::LogLevel
            use Low::Rack::RequestLogger, key: 'useless.doc.logger'
            use ::Rack::CommonLogger

            use Useless::Doc::Rack::UI
            use Useless::Doc::Rack::CSS
            use Useless::Doc::Rack::URL
            use Useless::Doc::Rack::Subject
            run Useless::Doc::Rack::HTML
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
useless-doc-0.4.0 lib/useless/doc/rack.rb
useless-doc-0.3.1 lib/useless/doc/rack.rb