Sha256: f6a43a21291db0aa4d925b938736f5d0a4fe5a8965a2dd6954b78e587fa34189

Contents?: true

Size: 504 Bytes

Versions: 2

Compression:

Stored size: 504 Bytes

Contents

require 'grape/middleware/base'

module Grape
  module Middleware
    class Error < Base
      def call!(env)
        @env = env
        result = catch :error do
          @app.call(@env)
        end
        
        result ||= {}
        result.is_a?(Hash) ? error_response(result) : result
      end
      
      def error_response(error = {})
        Rack::Response.new([(error[:message] || options[:default_message])], error[:status] || 403, error[:headers] || {}).finish
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grape-0.1.4 lib/grape/middleware/error.rb
grape-0.1.3 lib/grape/middleware/error.rb