Class: Scale::Types::OptionBool

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/scale/types.rb

Instance Attribute Summary

Attributes included from Base

#value

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Base

#==, included, #initialize, #to_human

Class Method Details

.decode(scale_bytes) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/scale/types.rb', line 29

def self.decode(scale_bytes)
  byte = scale_bytes.get_next_bytes(1)[0]
  value = if byte == 0x00
            nil
          elsif byte == 0x01
            true
          elsif byte == 0x02
            false
          else
            raise BadDataError.new("Bad scale data for OptionBool #{byte.to_s(16)}")
          end
  new(value)
end

Instance Method Details

#encodeObject



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/scale/types.rb', line 43

def encode
  if value.nil?
    "00"
  elsif value === true
    "01"
  elsif value === false
    "02"
  else
    raise WrongValueError.new("OptionBool can not have value other than `nil`, `true`, `false`")
  end
end