Sha256: 88278493bc61950edc42ed5236abd03c98a8ce1717f76c69c6659945d4485eda

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

module Spire
    class Error
        def initialize(opts={:status => 200, :message=> "Unknown Error"})
                        
            case opts[:status]
            when 200
                self.return_error(opts[:message], opts[:status])
            when 404
              if opts[:message]
                self.return_error(opts[:message], opts[:status])
              else
                self.return_404
              end
            when 444
                self.return_444
            when 401
                self.return_401
            when 204
                self.return_204
            when 301
                self.return_301
            end
        end

        def return_204
            @return = Response.new("204 // No content", 'text/html;', 204)
        end

        def return_301
            @return = Response.new("301 // Moved permanently", 'text/html;', 301)
        end
        
        def return_401
            @return = Response.new("401 // Not authorized", 'text/html;', 401)
        end
        
        def return_404
            @return = Response.new("404 // Page not found", 'text/html;', 404)
        end
        
        def return_444
            @return = Response.new("No response made by the server, check for a valid response", 'text/html;', 404)
        end

        def return_error(message, status)
            @return = Response.new(message, 'text/html;', status)
        end

        def to_rack
            @return.to_rack
        end
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spire-0.4.2 lib/spire/error.rb
spire-0.4.1 lib/spire/error.rb
spire-0.4.0 lib/spire/error.rb