Class: PuppetGenerator::Models::Base
- Inherits:
-
Object
- Object
- PuppetGenerator::Models::Base
- Includes:
- Comparable
- Defined in:
- lib/puppet_generator/models/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
- .all ⇒ Object
-
.all_names_as_string(connector = ", ") ⇒ Object
return all names as string.
- .clear ⇒ Object
- .create(*args, &block) ⇒ Object
- .delete(val) ⇒ Object
-
.enable(name) ⇒ Object
enables a specific instance.
-
.find(criteria = {}) ⇒ Object
finds a single instance.
-
.find_all(criteria = {}) ⇒ Object
finds all instances.
- .inherited(base) ⇒ Object
-
.register(element) ⇒ Object
attr_accessor :instances.
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#enable ⇒ Object
enable action.
-
#enabled?(val = true) ⇒ Boolean
check if action is enabled.
- #eql?(other) ⇒ Boolean
-
#initialize(name) ⇒ Base
constructor
A new instance of Base.
- #name?(name) ⇒ Boolean
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
#name ⇒ Object (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
.all ⇒ Object
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 |
.clear ⇒ Object
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. 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 |
#enable ⇒ Object
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
26 27 28 |
# File 'lib/puppet_generator/models/base.rb', line 26 def enabled?(val=true) @enabled == val end |
#eql?(other) ⇒ Boolean
38 39 40 |
# File 'lib/puppet_generator/models/base.rb', line 38 def eql?(other) name == other.name end |
#name?(name) ⇒ Boolean
30 31 32 |
# File 'lib/puppet_generator/models/base.rb', line 30 def name?(name) @name == name end |