Class: SubZero::Message

Inherits:
Object
  • Object
show all
Includes:
Parser, Validations
Defined in:
lib/sub_zero/message.rb,
lib/sub_zero/message/parser.rb,
lib/sub_zero/message/validations.rb

Defined Under Namespace

Modules: Parser, Validations

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Validations

#validate_response!

Methods included from Parser

#to_source

Constructor Details

#initialize(args = {}) ⇒ Message

Returns a new instance of Message.



17
18
19
20
21
22
23
# File 'lib/sub_zero/message.rb', line 17

def initialize args = {}
  @type, @subtype = args.values_at(:type, :subtype)
  @rid            = args[:rid] || SecureRandom.uuid
  @verb, @status  = args.values_at(:verb, :status)
  @payload        = args[:payload] || {}
  @options        = args[:options] || {}
end

Instance Attribute Details

#optionsObject Also known as: routing_info

Returns the value of attribute options.



9
10
11
# File 'lib/sub_zero/message.rb', line 9

def options
  @options
end

#payloadObject

Returns the value of attribute payload.



9
10
11
# File 'lib/sub_zero/message.rb', line 9

def payload
  @payload
end

#ridObject

Returns the value of attribute rid.



9
10
11
# File 'lib/sub_zero/message.rb', line 9

def rid
  @rid
end

#statusObject

Returns the value of attribute status.



9
10
11
# File 'lib/sub_zero/message.rb', line 9

def status
  @status
end

#subtypeObject Also known as: sid

Returns the value of attribute subtype.



9
10
11
# File 'lib/sub_zero/message.rb', line 9

def subtype
  @subtype
end

#typeObject

Returns the value of attribute type.



9
10
11
# File 'lib/sub_zero/message.rb', line 9

def type
  @type
end

#verbObject

Returns the value of attribute verb.



9
10
11
# File 'lib/sub_zero/message.rb', line 9

def verb
  @verb
end

Instance Method Details

#error?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/sub_zero/message.rb', line 44

def error?
  status == 'NOK'
end

#heartbeat?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/sub_zero/message.rb', line 28

def heartbeat?
  verb == 'PONG'
end

#request?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/sub_zero/message.rb', line 32

def request?
  status.blank?
end

#response?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/sub_zero/message.rb', line 36

def response?
  not request?
end

#success?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/sub_zero/message.rb', line 40

def success?
  status == 'OK'
end