Module: RSMP::MessageSxlCodec

Included in:
Message
Defined in:
lib/rsmp/message/sxl_codec.rb

Overview

Encodes and decodes SXL argument values for message payloads.

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

SXL_ITEM_SHAPES =
{
  'StatusResponse' => { kind: :statuses, list: 'sS', code: 'sCI', name: 'n', value: 's' },
  'StatusUpdate' => { kind: :statuses, list: 'sS', code: 'sCI', name: 'n', value: 's' },
  'CommandRequest' => { kind: :commands, list: 'arg', code: 'cCI', name: 'n', value: 'v' },
  'CommandResponse' => { kind: :commands, list: 'rvs', code: 'cCI', name: 'n', value: 'v' },
  'Alarm' => { kind: :alarms, list: 'rvs', code: nil, name: 'n', value: 'v' }
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



12
13
14
# File 'lib/rsmp/message/sxl_codec.rb', line 12

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#decode_for(schemas) ⇒ Object



21
22
23
24
# File 'lib/rsmp/message/sxl_codec.rb', line 21

def decode_for(schemas)
  transform_sxl_items(schemas, :decode_sxl_value)
  self
end

#encode_for(schemas) ⇒ Object



16
17
18
19
# File 'lib/rsmp/message/sxl_codec.rb', line 16

def encode_for(schemas)
  transform_sxl_items(schemas, :encode_sxl_value)
  self
end