Class: Flic::Protocol::Primitives::Enum
- Inherits:
-
BinData::Primitive
- Object
- BinData::Primitive
- Flic::Protocol::Primitives::Enum
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_octet ⇒ Object
30
31
32
|
# File 'lib/flic/protocol/primitives/enum.rb', line 30
def max_octet
octets.max
end
|
.next_available_octet ⇒ Object
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_option ⇒ Object
18
19
20
|
# File 'lib/flic/protocol/primitives/enum.rb', line 18
def octet_option
@octet_option ||= {}
end
|
.octets ⇒ Object
26
27
28
|
# File 'lib/flic/protocol/primitives/enum.rb', line 26
def octets
octet_option.keys
end
|
.option_octet ⇒ Object
14
15
16
|
# File 'lib/flic/protocol/primitives/enum.rb', line 14
def option_octet
@option_octet ||= {}
end
|
.options ⇒ Object
22
23
24
|
# File 'lib/flic/protocol/primitives/enum.rb', line 22
def options
option_octet.keys
end
|
Instance Method Details
#get ⇒ Object
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
|