class Errors::Base

Attributes

data[RW]

Public Class Methods

new(code=nil) click to toggle source
# File lib/errors.rb, line 11
def initialize(code=nil)
  @code = code
  read_file
end

Public Instance Methods

code() click to toggle source
# File lib/errors.rb, line 20
def code
  @code
end
description() click to toggle source
# File lib/errors.rb, line 28
def description
  result['description']
end
phrase() click to toggle source
# File lib/errors.rb, line 24
def phrase
  result['phrase']
end
read_file() click to toggle source
# File lib/errors.rb, line 16
def read_file
  @data = JSON.parse(File.read("#{Dir.pwd}/lib/json/status-codes.json"))
end
spec_href() click to toggle source
# File lib/errors.rb, line 36
def spec_href
  result['spec_href']
end
spec_title() click to toggle source
# File lib/errors.rb, line 32
def spec_title
  result['spec_title']
end

Private Instance Methods

result() click to toggle source
# File lib/errors.rb, line 42
def result
  raise "Out of status code bounds, 100 to 799" if (@code < 100 || @code > 800)
  result = @data.select {|d| d['code'] == @code.to_s }.first
  if result.nil?
    new_code = case @code
    when 100..199
      "1xx"
    when 200.299
      "2xx"
    when 300.399
      "3xx"
    when 400..499
      "4xx"
    when 500..599
      "5xx"
    when 700..799
      "7xx"
    end
    result = @data.select {|d| d['code'] == new_code }.first
  end
  result
end