class DSN::StatusCode

The full status code

Attributes

class_subcode[R]
code[R]
detail_subcode[R]
subject_subcode[R]

Public Class Methods

from_string(code) click to toggle source
# File lib/dsn/status_code.rb, line 10
def self.from_string(code)
  new(Parser::String.new(code))
end
new(code) click to toggle source
# File lib/dsn/status_code.rb, line 16
def initialize(code)
  @code = code
  @class_subcode = Subcode::ClassSubcode.new(code)
  @subject_subcode = Subcode::SubjectSubcode.new(code)
  @detail_subcode = Subcode::DetailSubcode.new(code)
end

Public Instance Methods

subcode() click to toggle source

Returns the most detailed subcode that is valid

# File lib/dsn/status_code.rb, line 28
def subcode
  raise InvalidStatusCode unless class_subcode.valid?

  subcodes.select(&:valid?).last
end
to_s() click to toggle source
# File lib/dsn/status_code.rb, line 34
def to_s
  code.to_s
end
valid?() click to toggle source
# File lib/dsn/status_code.rb, line 23
def valid?
  subcodes.all?(&:valid?)
end

Private Instance Methods

subcodes() click to toggle source
# File lib/dsn/status_code.rb, line 48
def subcodes
  [class_subcode, subject_subcode, detail_subcode]
end