metric_configuration.rb 1.07 KB
class Kalibro::MetricConfiguration < Kalibro::Model

  attr_accessor :id, :code, :metric, :base_tool_name, :weight, :aggregation_form, :reading_group_id, :configuration_id

  def id=(value)
    @id = value.to_i
  end
  
  def reading_group_id=(value)
    @reading_group_id = value.to_i
  end

  def metric=(value)
    @metric = Kalibro::Metric.to_object(value)
  end

  def weight=(value)
    @weight = value.to_f
  end

  def update_attributes(attributes={})
    attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
    save
  end

  def to_hash
    super :except => [:configuration_id]
  end

  def self.metric_configurations_of(configuration_id)
    response = request(:metric_configurations_of, {:configuration_id => configuration_id})[:metric_configuration]
    response = [] if response.nil?
    response = [response] if response.is_a?(Hash) 
    response.map { |metric_configuration| new metric_configuration }
  end

  private
  
  def save_params
    {:metric_configuration => self.to_hash, :configuration_id => self.configuration_id}
  end
  
end