Commit c9898c9f34f2211f5ec314a4e7855038d3716566
Committed by
Paulo Meireles
1 parent
35236463
Exists in
master
and in
29 other branches
[Mezuro] Modified to_hash to accept options and fixed test
Showing
3 changed files
with
13 additions
and
26 deletions
Show diff stats
plugins/mezuro/lib/kalibro/metric_configuration.rb
@@ -51,7 +51,7 @@ class Kalibro::MetricConfiguration < Kalibro::Model | @@ -51,7 +51,7 @@ class Kalibro::MetricConfiguration < Kalibro::Model | ||
51 | def save | 51 | def save |
52 | begin | 52 | begin |
53 | self.class.request("MetricConfiguration", :save_metric_configuration, { | 53 | self.class.request("MetricConfiguration", :save_metric_configuration, { |
54 | - :metric_configuration => to_hash, | 54 | + :metric_configuration => to_hash(:except => [:configuration_name]), |
55 | :configuration_name => configuration_name}) | 55 | :configuration_name => configuration_name}) |
56 | true | 56 | true |
57 | rescue Exception => error | 57 | rescue Exception => error |
@@ -66,22 +66,6 @@ class Kalibro::MetricConfiguration < Kalibro::Model | @@ -66,22 +66,6 @@ class Kalibro::MetricConfiguration < Kalibro::Model | ||
66 | }) | 66 | }) |
67 | end | 67 | end |
68 | 68 | ||
69 | - def to_hash | ||
70 | - hash = Hash.new | ||
71 | - fields.each do |field| | ||
72 | - if (field != :configuration_name) | ||
73 | - field_value = send(field) | ||
74 | - hash[field] = convert_to_hash(field_value) | ||
75 | - if field_value.is_a?(Kalibro::Model) | ||
76 | - hash = {:attributes! => {}}.merge(hash) | ||
77 | - hash[:attributes!][field.to_sym] = { | ||
78 | - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', | ||
79 | - 'xsi:type' => 'kalibro:' + xml_class_name(field_value) } | ||
80 | - end | ||
81 | - end | ||
82 | - end | ||
83 | - hash | ||
84 | - end | ||
85 | 69 | ||
86 | private | 70 | private |
87 | 71 |
plugins/mezuro/lib/kalibro/model.rb
@@ -4,16 +4,19 @@ class Kalibro::Model | @@ -4,16 +4,19 @@ class Kalibro::Model | ||
4 | attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) } | 4 | attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) } |
5 | end | 5 | end |
6 | 6 | ||
7 | - def to_hash | 7 | + def to_hash(options={}) |
8 | hash = Hash.new | 8 | hash = Hash.new |
9 | + excepts = !options[:except].nil? ? options[:except] : [] | ||
9 | fields.each do |field| | 10 | fields.each do |field| |
10 | - field_value = send(field) | ||
11 | - hash[field] = convert_to_hash(field_value) if ! field_value.nil? | ||
12 | - if field_value.is_a?(Kalibro::Model) | ||
13 | - hash = {:attributes! => {}}.merge(hash) | ||
14 | - hash[:attributes!][field.to_sym] = { | ||
15 | - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', | ||
16 | - 'xsi:type' => 'kalibro:' + xml_class_name(field_value) } | 11 | + if(!excepts.include?(field)) |
12 | + field_value = send(field) | ||
13 | + hash[field] = convert_to_hash(field_value) if ! field_value.nil? | ||
14 | + if field_value.is_a?(Kalibro::Model) | ||
15 | + hash = {:attributes! => {}}.merge(hash) | ||
16 | + hash[:attributes!][field.to_sym] = { | ||
17 | + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', | ||
18 | + 'xsi:type' => 'kalibro:' + xml_class_name(field_value) } | ||
19 | + end | ||
17 | end | 20 | end |
18 | end | 21 | end |
19 | hash | 22 | hash |
plugins/mezuro/test/unit/kalibro/metric_configuration_test.rb
@@ -19,7 +19,7 @@ class MetricConfigurationTest < ActiveSupport::TestCase | @@ -19,7 +19,7 @@ class MetricConfigurationTest < ActiveSupport::TestCase | ||
19 | end | 19 | end |
20 | 20 | ||
21 | should 'convert metric configuration to hash' do | 21 | should 'convert metric configuration to hash' do |
22 | - assert_equal @native_metric_configuration_hash, @native_metric_configuration_hash | 22 | + assert_equal @native_metric_configuration_hash, @native_metric_configuration.to_hash(:except => [:configuration_name]) |
23 | end | 23 | end |
24 | 24 | ||
25 | should 'create appropriate metric type' do | 25 | should 'create appropriate metric type' do |