From c9898c9f34f2211f5ec314a4e7855038d3716566 Mon Sep 17 00:00:00 2001 From: Alessandro Palmeira + Caio Salgado Date: Thu, 19 Jul 2012 15:45:51 -0300 Subject: [PATCH] [Mezuro] Modified to_hash to accept options and fixed test --- plugins/mezuro/lib/kalibro/metric_configuration.rb | 18 +----------------- plugins/mezuro/lib/kalibro/model.rb | 19 +++++++++++-------- plugins/mezuro/test/unit/kalibro/metric_configuration_test.rb | 2 +- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/plugins/mezuro/lib/kalibro/metric_configuration.rb b/plugins/mezuro/lib/kalibro/metric_configuration.rb index f38105f..6ca974d 100644 --- a/plugins/mezuro/lib/kalibro/metric_configuration.rb +++ b/plugins/mezuro/lib/kalibro/metric_configuration.rb @@ -51,7 +51,7 @@ class Kalibro::MetricConfiguration < Kalibro::Model def save begin self.class.request("MetricConfiguration", :save_metric_configuration, { - :metric_configuration => to_hash, + :metric_configuration => to_hash(:except => [:configuration_name]), :configuration_name => configuration_name}) true rescue Exception => error @@ -66,22 +66,6 @@ class Kalibro::MetricConfiguration < Kalibro::Model }) end - def to_hash - hash = Hash.new - fields.each do |field| - if (field != :configuration_name) - field_value = send(field) - hash[field] = convert_to_hash(field_value) - if field_value.is_a?(Kalibro::Model) - hash = {:attributes! => {}}.merge(hash) - hash[:attributes!][field.to_sym] = { - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', - 'xsi:type' => 'kalibro:' + xml_class_name(field_value) } - end - end - end - hash - end private diff --git a/plugins/mezuro/lib/kalibro/model.rb b/plugins/mezuro/lib/kalibro/model.rb index 5a58763..48f7c09 100644 --- a/plugins/mezuro/lib/kalibro/model.rb +++ b/plugins/mezuro/lib/kalibro/model.rb @@ -4,16 +4,19 @@ class Kalibro::Model attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) } end - def to_hash + def to_hash(options={}) hash = Hash.new + excepts = !options[:except].nil? ? options[:except] : [] fields.each do |field| - field_value = send(field) - hash[field] = convert_to_hash(field_value) if ! field_value.nil? - if field_value.is_a?(Kalibro::Model) - hash = {:attributes! => {}}.merge(hash) - hash[:attributes!][field.to_sym] = { - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', - 'xsi:type' => 'kalibro:' + xml_class_name(field_value) } + if(!excepts.include?(field)) + field_value = send(field) + hash[field] = convert_to_hash(field_value) if ! field_value.nil? + if field_value.is_a?(Kalibro::Model) + hash = {:attributes! => {}}.merge(hash) + hash[:attributes!][field.to_sym] = { + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', + 'xsi:type' => 'kalibro:' + xml_class_name(field_value) } + end end end hash diff --git a/plugins/mezuro/test/unit/kalibro/metric_configuration_test.rb b/plugins/mezuro/test/unit/kalibro/metric_configuration_test.rb index 1c620d6..d76941b 100644 --- a/plugins/mezuro/test/unit/kalibro/metric_configuration_test.rb +++ b/plugins/mezuro/test/unit/kalibro/metric_configuration_test.rb @@ -19,7 +19,7 @@ class MetricConfigurationTest < ActiveSupport::TestCase end should 'convert metric configuration to hash' do - assert_equal @native_metric_configuration_hash, @native_metric_configuration_hash + assert_equal @native_metric_configuration_hash, @native_metric_configuration.to_hash(:except => [:configuration_name]) end should 'create appropriate metric type' do -- libgit2 0.21.2