class Snmp2mkr::ConfigTypes::ValueDefinition
Attributes
name[R]
type[R]
value[R]
Public Instance Methods
collect_children()
click to toggle source
# File lib/snmp2mkr/config_types/value_definition.rb, line 45 def collect_children [@value] end
evaluate(context: binded_context, previous: nil)
click to toggle source
# File lib/snmp2mkr/config_types/value_definition.rb, line 36 def evaluate(context: binded_context, previous: nil) case @type when 'string' @value.evaluate when 'array_append' [*previous, @value.evaluate] end end
setup(kv)
click to toggle source
# File lib/snmp2mkr/config_types/value_definition.rb, line 10 def setup(kv) raise TypeError, "#{self.class} must be given an Array (BUG?)" unless kv.kind_of?(Array) && kv.size == 2 k, v = kv @name = k raise ArgumentError, "#{self.class} key must be String" unless k.kind_of?(String) raise ArgumentError, "#{self.class} value must be String or Hash" unless v.kind_of?(String) || v.kind_of?(Hash) if v.kind_of?(String) v = {'value' => TemplateString.new(v), 'type' => 'string'} end @type = v.fetch('type') raise TypeError, "#{self.class} value, key 'type' must be a String" unless @type.kind_of?(String) case @type when 'array_append', 'string' @value = v['value'] @value = TemplateString.new(v['value']) if @value.kind_of?(String) else raise ArgumentError, "#{self.class} doesn't know type #{@type.inspect}" end end