Sha256: afa27d84cc68e3892b53163a8352bae4a774180cdb76af2f80b83b293e910412

Contents?: true

Size: 863 Bytes

Versions: 153

Compression:

Stored size: 863 Bytes

Contents

module ActionDispatch
  # A simple Rack application that renders exceptions in the given public path.
  class PublicExceptions
    attr_accessor :public_path

    def initialize(public_path)
      @public_path = public_path
    end

    def call(env)
      status      = env["PATH_INFO"][1..-1]
      locale_path = "#{public_path}/#{status}.#{I18n.locale}.html" if I18n.locale
      path        = "#{public_path}/#{status}.html"

      if locale_path && File.exist?(locale_path)
        render(status, File.read(locale_path))
      elsif File.exist?(path)
        render(status, File.read(path))
      else
        [404, { "X-Cascade" => "pass" }, []]
      end
    end

    private

    def render(status, body)
      [status, {'Content-Type' => "text/html; charset=#{Response.default_charset}", 'Content-Length' => body.bytesize.to_s}, [body]]
    end
  end
end

Version data entries

153 entries across 114 versions & 18 rubygems

Version Path
actionpack-3.2.22.5 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.22.4 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.22.3 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.22.2 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.22.1 lib/action_dispatch/middleware/public_exceptions.rb
active_mailer-0.0.10 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.22 lib/action_dispatch/middleware/public_exceptions.rb
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/actionpack-3.2.12/lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.21 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.20 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.19 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.18 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.17 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.16 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.15 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.15.rc3 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.15.rc2 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.15.rc1 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.14 lib/action_dispatch/middleware/public_exceptions.rb
actionpack-3.2.14.rc2 lib/action_dispatch/middleware/public_exceptions.rb