metric_configuration.rb 886 Bytes
class Kalibro::MetricConfiguration < Kalibro::Model

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

  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)
    hash = request(:metric_configurations_of, {:configuration_id => configuration_id})
    hash[:metric_configuration].to_a.map { |metric_configuration| new metric_configuration }
  end

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