Class: Puppet::Util::NetworkDevice::Cisco_ios::Model::GenericValue

Inherits:
Object
  • Object
show all
Extended by:
ValueHelper
Defined in:
lib/puppet/util/network_device/cisco_ios/model/generic_value.rb

Direct Known Subclasses

ModelValue, ScopedValue

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, transport, facts, idx, &block) ⇒ GenericValue

Returns a new instance of GenericValue.



9
10
11
12
13
14
15
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 9

def initialize(name, transport, facts, idx, &block)
  @name = name
  @transport = transport
  @facts = facts
  @idx = idx
  self.instance_eval(&block) if block_given?
end

Instance Attribute Details

#evaluatedObject

Returns the value of attribute evaluated.



6
7
8
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 6

def evaluated
  @evaluated
end

#factsObject

Returns the value of attribute facts.



6
7
8
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 6

def facts
  @facts
end

#idxObject

Returns the value of attribute idx.



6
7
8
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 6

def idx
  @idx
end

#nameObject

Returns the value of attribute name.



6
7
8
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 6

def name
  @name
end

#transportObject

Returns the value of attribute transport.



6
7
8
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 6

def transport
  @transport
end

#valueObject

Returns the value of attribute value.



6
7
8
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 6

def value
  @value
end

Instance Method Details

#default(value) ⇒ Object



17
18
19
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 17

def default(value)
  @value ||= value
end

#evaluate(&block) ⇒ Object

This is a Helper Method so we can make sure we are in the right scope



24
25
26
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 24

def evaluate(&block)
  instance_eval(&block)
end

#parse(txt) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 29

def parse(txt)
  if self.match.is_a?(Proc)
    self.value = self.match.call(txt)
  else
    self.value = txt.scan(self.match).flatten[self.idx]
  end
  self.evaluated = true
end

#update(transport, old_value) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/puppet/util/network_device/cisco_ios/model/generic_value.rb', line 38

def update(transport, old_value)
  if self.value == :absent || self.value.nil?
    self.remove.call(transport, old_value)
    return
  end
  if self.value == :present
    self.add.call(transport, self.value)
    return
  end
  # Remove old Entrys
  ([old_value].flatten - [self.value].flatten).compact.each do |val|
    self.remove.call(transport, val)
  end
  # Add new Entrys
  ([self.value].flatten - [old_value].flatten).compact.each do |val|
    self.add.call(transport, val)
  end
end