Class: PuppetGenerator::Models::Base

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/puppet_generator/models/base.rb

Direct Known Subclasses

ErrorMessage

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Base

Returns a new instance of Base.



15
16
17
18
# File 'lib/puppet_generator/models/base.rb', line 15

def initialize(name)
  @name = name.to_sym
  @enabled = false
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/puppet_generator/models/base.rb', line 9

def name
  @name
end

Class Method Details

.allObject



75
76
77
# File 'lib/puppet_generator/models/base.rb', line 75

def all
  @instances.to_a
end

.all_names_as_string(connector = ", ") ⇒ Object

return all names as string



80
81
82
# File 'lib/puppet_generator/models/base.rb', line 80

def all_names_as_string(connector=", ")
  find_all(enabled: true).map(&:name).sort.join(connector)
end

.clearObject



71
72
73
# File 'lib/puppet_generator/models/base.rb', line 71

def clear
  @instances = Set.new
end

.create(*args, &block) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/puppet_generator/models/base.rb', line 51

def create( *args, &block )
  if block_given?
    register( new( *args, &block ) )
  else
    register( new( *args ) )
  end
end

.delete(val) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/puppet_generator/models/base.rb', line 63

def delete( val )
  element = find( val.to_s.to_sym )
  raise Exceptions::InstanceNotFound unless element
  @instances.delete element

  element
end

.enable(name) ⇒ Object

enables a specific instance



85
86
87
# File 'lib/puppet_generator/models/base.rb', line 85

def enable(name)
  find(name: name).enable
end

.find(criteria = {}) ⇒ Object

finds a single instance



90
91
92
# File 'lib/puppet_generator/models/base.rb', line 90

def find( val )
  @instances.find { |i| i.name == val.to_s.to_sym }
end

.find_all(criteria = {}) ⇒ Object

finds all instances



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/puppet_generator/models/base.rb', line 95

def find_all( criteria={} )
  PuppetGenerator::Models.logger.debug(self) { "Criteria for search: #{ criteria }" }
  criteria = { name: criteria.to_sym } if criteria.kind_of? Symbol or criteria.kind_of? String

  PuppetGenerator::Models.logger.debug(self) { "Instances to be searched for: #{ @instances.map { |i| "#{i.name} (#{i.class})" }.join(", ") }" }
  @instances.find_all do |i| 
    criteria.all? do |c,v|

      PuppetGenerator::Models.logger.debug(self) { "Check method for search: #{ c }" }
      i.send( "#{c}?".to_sym , v )
    end
  end

rescue NameError => e
  raise Exceptions::InvalidSearchCriteria, e.message
end

.inherited(base) ⇒ Object



11
12
13
# File 'lib/puppet_generator/models/base.rb', line 11

def self.inherited(base)
  base.instance_variable_set(:@instances, Set.new)
end

.register(element) ⇒ Object

attr_accessor :instances



45
46
47
48
49
# File 'lib/puppet_generator/models/base.rb', line 45

def register(element)
  @instances << element

  element
end

Instance Method Details

#<=>(other) ⇒ Object



34
35
36
# File 'lib/puppet_generator/models/base.rb', line 34

def <=>(other)
  name <=> other.name
end

#enableObject

enable action



21
22
23
# File 'lib/puppet_generator/models/base.rb', line 21

def enable
  @enabled = true
end

#enabled?(val = true) ⇒ Boolean

check if action is enabled

Returns:

  • (Boolean)


26
27
28
# File 'lib/puppet_generator/models/base.rb', line 26

def enabled?(val=true)
  @enabled == val
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/puppet_generator/models/base.rb', line 38

def eql?(other)
  name == other.name
end

#name?(name) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/puppet_generator/models/base.rb', line 30

def name?(name)
  @name == name
end