Class: Flic::Protocol::Primitives::Enum

Inherits:
BinData::Primitive
  • Object
show all
Defined in:
lib/flic/protocol/primitives/enum.rb

Defined Under Namespace

Classes: Error, InvalidOctetError, InvalidOptionError

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.max_octetObject



30
31
32
# File 'lib/flic/protocol/primitives/enum.rb', line 30

def max_octet
  octets.max
end

.next_available_octetObject



34
35
36
37
38
39
40
# File 'lib/flic/protocol/primitives/enum.rb', line 34

def next_available_octet
  if max_octet
    1 + max_octet
  else
    0
  end
end

.octet_optionObject



18
19
20
# File 'lib/flic/protocol/primitives/enum.rb', line 18

def octet_option
  @octet_option ||= {}
end

.octetsObject



26
27
28
# File 'lib/flic/protocol/primitives/enum.rb', line 26

def octets
  octet_option.keys
end

.option_octetObject



14
15
16
# File 'lib/flic/protocol/primitives/enum.rb', line 14

def option_octet
  @option_octet ||= {}
end

.optionsObject



22
23
24
# File 'lib/flic/protocol/primitives/enum.rb', line 22

def options
  option_octet.keys
end

Instance Method Details

#getObject



57
58
59
60
61
62
63
# File 'lib/flic/protocol/primitives/enum.rb', line 57

def get
  if octet_option.has_key?(octet)
    octet_option[octet]
  else
    raise InvalidOctetError, "No such octet `#{octet.inspect}` for enum #{inspect}"
  end
end

#set(option) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/flic/protocol/primitives/enum.rb', line 65

def set(option)
  if option_octet.has_key?(option)
    self.octet = self.class.option_octet[option]
  else
    raise InvalidOptionError, "No such option `#{option.inspect}` for enum #{inspect}"
  end
end