Class: DSN::StatusCode

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/dsn/status_code.rb

Overview

The full status code

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code) ⇒ StatusCode

Returns a new instance of StatusCode.



16
17
18
19
20
21
# 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

Instance Attribute Details

#class_subcodeObject (readonly)

Returns the value of attribute class_subcode.



38
39
40
# File 'lib/dsn/status_code.rb', line 38

def class_subcode
  @class_subcode
end

#detail_subcodeObject (readonly)

Returns the value of attribute detail_subcode.



40
41
42
# File 'lib/dsn/status_code.rb', line 40

def detail_subcode
  @detail_subcode
end

#subject_subcodeObject (readonly)

Returns the value of attribute subject_subcode.



39
40
41
# File 'lib/dsn/status_code.rb', line 39

def subject_subcode
  @subject_subcode
end

Class Method Details

.from_string(code) ⇒ Object



10
11
12
# File 'lib/dsn/status_code.rb', line 10

def self.from_string(code)
  new(Parser::String.new(code))
end

Instance Method Details

#subcodeObject

Returns the most detailed subcode that is valid

Raises:



28
29
30
31
32
# File 'lib/dsn/status_code.rb', line 28

def subcode
  raise InvalidStatusCode unless class_subcode.valid?

  subcodes.select(&:valid?).last
end

#to_sObject



34
35
36
# File 'lib/dsn/status_code.rb', line 34

def to_s
  code.to_s
end

#valid?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/dsn/status_code.rb', line 23

def valid?
  subcodes.all?(&:valid?)
end