Class: Configuration
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Configuration
- Defined in:
- app/models/configuration.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_configuration_item(configuration_item_type, *option_internal_identifiers) ⇒ Object (also: #add_item)
-
#clone(set_defaults = true) ⇒ Object
Clone.
-
#copy ⇒ Object
Copy.
- #get_configuration_item(configuration_item_type) ⇒ Object (also: #get_item)
- #is_template? ⇒ Boolean
- #update_configuration_item(configuration_item_type, *option_internal_identifiers) ⇒ Object (also: #update_item)
Class Method Details
.find_template(iid) ⇒ Object
133 134 135 |
# File 'app/models/configuration.rb', line 133 def find_template(iid) self.templates.where('internal_identifier = ?', iid).first end |
Instance Method Details
#add_configuration_item(configuration_item_type, *option_internal_identifiers) ⇒ Object Also known as: add_item
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/models/configuration.rb', line 35 def add_configuration_item(configuration_item_type, *option_internal_identifiers) option_internal_identifiers = option_internal_identifiers.collect{|item| item.to_s} configuration_item_type = (configuration_item_type.is_a? ConfigurationItemType) ? configuration_item_type : ConfigurationItemType.find_by_internal_identifier(configuration_item_type.to_s) item = get_configuration_item(configuration_item_type) if item update_configuration_item(configuration_item_type, option_internal_identifiers) else unless self.configuration_item_types.where("id = ?", configuration_item_type.id).first.nil? item = ConfigurationItem.create(:configuration_item_type => configuration_item_type) item.(option_internal_identifiers) self.configuration_items << item self.save else raise "Configuration Item Type #{configuration_item_type.description} is not valid for this configuration" end end end |
#clone(set_defaults = true) ⇒ Object
Clone
Will copy all configuration item types
-
Args
-
set_defaults
-> create items and set default options default = true
-
-
Returns :
-
the cloned configuration
-
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'app/models/configuration.rb', line 84 def clone(set_defaults=true) configuration_dup = self.dup configuration_dup.internal_identifier = "#{self.internal_identifier} clone" configuration_dup.description = "#{self.description} clone" configuration_dup.is_template = false self.configuration_item_types.each do |configuration_item_type| configuration_dup.configuration_item_types << configuration_item_type end configuration_dup.save configuration_dup.configuration_item_types.each do |configuration_item_type| configuration_item = ConfigurationItem.create(:configuration_item_type => configuration_item_type) configuration_item. = configuration_item_type..default if set_defaults configuration_item.save configuration_dup.configuration_items << configuration_item end configuration_dup.save configuration_dup end |
#copy ⇒ Object
Copy
Will copy all configuration item types and items
-
Returns :
-
the copied configuration
-
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'app/models/configuration.rb', line 112 def copy configuration_dup = self.clone configuration_dup.internal_identifier = "#{self.internal_identifier} copy" configuration_dup.description = "#{self.description} copy" #clone items self.configuration_items.each do |item| item_dup = item.dup item_dup.configuration_item_type = item.configuration_item_type item..each do |option| item_dup. << option end item_dup.save configuration_dup.configuration_items << item_dup end configuration_dup.save configuration_dup end |
#get_configuration_item(configuration_item_type) ⇒ Object Also known as: get_item
68 69 70 71 72 |
# File 'app/models/configuration.rb', line 68 def get_configuration_item(configuration_item_type) configuration_item_type = (configuration_item_type.is_a? ConfigurationItemType) ? configuration_item_type : ConfigurationItemType.find_by_internal_identifier(configuration_item_type.to_s) self.items.where('configuration_item_type_id = ?', configuration_item_type.id).first end |
#is_template? ⇒ Boolean
31 32 33 |
# File 'app/models/configuration.rb', line 31 def is_template? self.is_template end |
#update_configuration_item(configuration_item_type, *option_internal_identifiers) ⇒ Object Also known as: update_item
56 57 58 59 60 61 62 63 64 |
# File 'app/models/configuration.rb', line 56 def update_configuration_item(configuration_item_type, *option_internal_identifiers) configuration_item_type = (configuration_item_type.is_a? ConfigurationItemType) ? configuration_item_type : ConfigurationItemType.find_by_internal_identifier(configuration_item_type.to_s) item = self.items.where('configuration_item_type_id = ?', configuration_item_type.id).first raise "Configuration item #{configuration_item_type.description} does not exist for configuration #{self.description}" if item.nil? item. item.(option_internal_identifiers.flatten) end |