Class: Iface::ValueSet
- Inherits:
-
Object
show all
- Defined in:
- lib/iface/value_set.rb,
lib/iface/value_set/pair.rb
Overview
Represents a generic set of NAME=value pairs
Defined Under Namespace
Classes: IpV4Primary, IpV6Primary, IpV6Secondaries, Pair
Constant Summary
collapse
- VAR_HANDLERS =
rubocop:disable Style/MutableConstant
{
'IPADDR' => IpV4Primary,
'IPV6ADDR' => IpV6Primary,
'IPV6ADDR_SECONDARIES' => IpV6Secondaries
}
Instance Method Summary
collapse
Constructor Details
#initialize(io) ⇒ ValueSet
Returns a new instance of ValueSet.
8
9
10
11
12
13
14
15
16
|
# File 'lib/iface/value_set.rb', line 8
def initialize(io)
@vars = {}
io.each_line do |line|
edited_line = line.sub(/#.*$/, '').strip
next if edited_line.empty?
pair = Pair.create(edited_line, value_set: self)
@vars[pair.name] = pair
end
end
|
Instance Method Details
#[](name) ⇒ Object
18
19
20
|
# File 'lib/iface/value_set.rb', line 18
def [](name)
@vars[name.upcase]&.value
end
|
#[]=(name, value) ⇒ Object
22
23
24
25
26
27
28
29
|
# File 'lib/iface/value_set.rb', line 22
def []=(name, value)
key = name.upcase
if @vars.key?(key)
@vars[key].value = value
else
@vars[key] = Pair.create(key, value, value_set: self)
end
end
|
#fetch_raw(name) ⇒ Object
31
32
33
|
# File 'lib/iface/value_set.rb', line 31
def fetch_raw(name)
@vars[name.upcase]&.raw_value
end
|
#key?(name) ⇒ Boolean
Also known as:
has_key?
35
36
37
|
# File 'lib/iface/value_set.rb', line 35
def key?(name)
@vars.key?(name.upcase)
end
|
#to_s ⇒ Object
40
41
42
|
# File 'lib/iface/value_set.rb', line 40
def to_s
"#{@vars.values.map(&:to_s).join("\n")}\n"
end
|