Class: ConfigurationItem

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/configuration_item.rb

Instance Method Summary collapse

Instance Method Details

#categoryObject



18
19
20
# File 'app/models/configuration_item.rb', line 18

def category
  self.type.category
end

#clear_configuration_optionsObject



10
11
12
# File 'app/models/configuration_item.rb', line 10

def clear_configuration_options
  configuration_options.clear
end

#clear_optionsObject



29
30
31
32
33
# File 'app/models/configuration_item.rb', line 29

def clear_options
  self.options.each{|option|option.destroy} if self.configuration_item_type.allow_user_defined_options?
  self.options.destroy_all
  self.save
end

#set_options(internal_identifiers_or_value) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/models/configuration_item.rb', line 43

def set_options(internal_identifiers_or_value)
  if self.configuration_item_type.allow_user_defined_options?
    value = internal_identifiers_or_value.first
    unless value.blank?
      self.options << ConfigurationOption.create(:value => value, :user_defined => true)
    end
  elsif self.configuration_item_type.is_multi_optional?
    internal_identifiers_or_value.each do |value|
      self.options << self.configuration_item_type.find_configuration_option(value) unless value.blank?
    end
  else
    value = internal_identifiers_or_value.first
    self.options << self.configuration_item_type.find_configuration_option(internal_identifiers_or_value) unless value.blank?
  end

  self.save
end

#to_js_hashObject



22
23
24
25
26
27
# File 'app/models/configuration_item.rb', line 22

def to_js_hash
  {:id => self.id,
    :configruationItemType => self.type.to_js_hash,
    :configurationOptions => options.collect(&:to_js_hash)
  }
end

#valueObject



35
36
37
38
39
40
41
# File 'app/models/configuration_item.rb', line 35

def value
  if options.count == 1
    options.first.value
  else
    options
  end
end