Class: Nucleo::Utilities::StatusCodeMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/nucleo/utilities/status_code_mapper.rb

Constant Summary collapse

STATUS_MAP =
{
  :failure      => (400...500),
  :redirect     => (300...400),
  :success      => (200...300),
  :server_error => (500...600)
}

Instance Method Summary collapse

Constructor Details

#initialize(*statuses) ⇒ Nucleo::StatusCodeMapper

Returns a utility object to map HTTP status codes to their corresponding ranges

Parameters:

  • statuses (Array)

    Symbols or status codes



18
19
20
# File 'lib/nucleo/utilities/status_code_mapper.rb', line 18

def initialize(*statuses)
  @statuses = Array(statuses).flatten
end

Instance Method Details

#codesArray

Returns a collection of all available codes

This merges the STATUS_MAP with specified codes

Returns:

  • (Array)

    Collection of status codes



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/nucleo/utilities/status_code_mapper.rb', line 27

def codes
  all_codes = []
  @statuses.inject(all_codes) do |collection,status|
    if status.is_a?(Symbol)
      collection.concat(STATUS_MAP[status].to_a)
    else
      collection.concat([status.to_i])
    end

    collection
  end

  Set.new(all_codes).to_a
end

#includes?(code) ⇒ Boolean

Checks to see if the codes includes a specific code

Parameters:

  • code (String, Integer)

    An HTTP code

Returns:

  • (Boolean)


47
48
49
# File 'lib/nucleo/utilities/status_code_mapper.rb', line 47

def includes?(code)
  self.codes.include?(code.to_i)
end