From e134eeeb2483371a7afc9f7cb78e3a251ddfbdbc Mon Sep 17 00:00:00 2001 From: Caio Salgado + Alessandro Palmeira Date: Fri, 13 Jul 2012 12:24:41 -0300 Subject: [PATCH] [Mezuro] refactoring metric result [not working] --- plugins/mezuro/lib/kalibro/metric_result.rb | 38 ++++++++++++++++++++++++++++++++++++++ plugins/mezuro/lib/kalibro/module_result.rb | 7 ++----- plugins/mezuro/test/fixtures/compound_metric_with_error_fixtures.rb | 4 ++-- plugins/mezuro/test/fixtures/metric_result_fixtures.rb | 21 ++++++--------------- plugins/mezuro/test/fixtures/module_result_fixtures.rb | 4 ++-- 5 files changed, 50 insertions(+), 24 deletions(-) create mode 100644 plugins/mezuro/lib/kalibro/metric_result.rb diff --git a/plugins/mezuro/lib/kalibro/metric_result.rb b/plugins/mezuro/lib/kalibro/metric_result.rb new file mode 100644 index 0000000..5d3780c --- /dev/null +++ b/plugins/mezuro/lib/kalibro/metric_result.rb @@ -0,0 +1,38 @@ +class Kalibro::MetricResult < Kalibro::Model + + attr_accessor :metric, :value, :range, :descendent_result, :weight + + def metric=(value) + if value.kind_of?(Hash) + compound?(value) ? @metric = to_object(value, Kalibro::CompoundMetric) : @metric = to_object(value, Kalibro::NativeMetric) + else + @metric = value + end + end + + def compound?(metric) + metric.has_key?(:script) + end + + def value=(value) + @value = value.to_f + end + + def range=(value) + @range = to_object(value, Kalibro::Range) + end + + def descendent_result=(value) + array = value.kind_of?(Array) ? value : [value] + @descendent_result = array.collect {|element| element.to_f} + end + + def descendent_results + @descendent_result + end + + def descendent_results=(descendent_results) + @descendent_result = descendent_results + end + +end diff --git a/plugins/mezuro/lib/kalibro/module_result.rb b/plugins/mezuro/lib/kalibro/module_result.rb index 2a13cb8..28103cc 100644 --- a/plugins/mezuro/lib/kalibro/module_result.rb +++ b/plugins/mezuro/lib/kalibro/module_result.rb @@ -25,9 +25,8 @@ class Kalibro::ModuleResult < Kalibro::Model to_objects_array(response) end - #FIXME change Kalibro::Entities::Module def module=(value) - @module = value.kind_of?(Hash) ? Kalibro::Entities::Module.from_hash(value) : value + @module = to_object(value, Kalibro::Module) end def date=(value) @@ -38,10 +37,8 @@ class Kalibro::ModuleResult < Kalibro::Model @grade = value.to_f end - #FIXME change Kalibro::Entities::MetricResult def metric_result=(value) - array = value.kind_of?(Array) ? value : [value] - @metric_result = array.each.collect { |element| element.kind_of?(Hash) ? Kalibro::Entities::MetricResult.from_hash(element) : element } + @metric_result = to_objects_array(value, Kalibro::MetricResult) end private diff --git a/plugins/mezuro/test/fixtures/compound_metric_with_error_fixtures.rb b/plugins/mezuro/test/fixtures/compound_metric_with_error_fixtures.rb index 0a64f7c..41b2e55 100644 --- a/plugins/mezuro/test/fixtures/compound_metric_with_error_fixtures.rb +++ b/plugins/mezuro/test/fixtures/compound_metric_with_error_fixtures.rb @@ -4,13 +4,13 @@ class CompoundMetricWithErrorFixtures def self.create fixture = Kalibro::Entities::CompoundMetricWithError.new - fixture.metric = CompoundMetricFixtures.sc + fixture.metric = CompoundMetricFixtures.compound_metric fixture.error = ErrorFixtures.create fixture end def self.create_hash - {:metric => CompoundMetricFixtures.sc_hash, :error => ErrorFixtures.create_hash, + {:metric => CompoundMetricFixtures.compound_metric_hash, :error => ErrorFixtures.create_hash, :attributes! => {:metric => { 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:type' => 'kalibro:compoundMetricXml' }}} diff --git a/plugins/mezuro/test/fixtures/metric_result_fixtures.rb b/plugins/mezuro/test/fixtures/metric_result_fixtures.rb index 08b8c47..0ecd721 100644 --- a/plugins/mezuro/test/fixtures/metric_result_fixtures.rb +++ b/plugins/mezuro/test/fixtures/metric_result_fixtures.rb @@ -4,24 +4,15 @@ require File.dirname(__FILE__) + '/range_fixtures' class MetricResultFixtures - def self.amloc_result - result = Kalibro::Entities::MetricResult.new - result.metric = NativeMetricFixtures.amloc - result.value = 0.0 - result.descendent_results = [40.0, 42.0] - result.range = RangeFixtures.range_excellent - result + def self.native_metric + Kalibro::MetricResult.new( native_metric_hash ) end - def self.sc_result - result = Kalibro::Entities::MetricResult.new - result.metric = CompoundMetricFixtures.compound_metric - result.value = 1.0 - result.descendent_results = [2.0, 42.0] - result + def self.compound_metric + Kalibro::MetricResult.new( compound_metric_hash ) end - def self.amloc_result_hash + def self.native_metric_hash {:metric => NativeMetricFixtures.amloc_hash, :value => 0.0, :descendent_result => [40.0, 42.0], :range => RangeFixtures.range_excellent_hash, :attributes! => {:metric => { @@ -29,7 +20,7 @@ class MetricResultFixtures 'xsi:type' => 'kalibro:nativeMetricXml' }}} end - def self.sc_result_hash + def self.compound_metric_hash {:metric => CompoundMetricFixtures.compound_metric_hash, :value => 1.0, :descendent_result => [2.0, 42.0], :attributes! => {:metric => { 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', diff --git a/plugins/mezuro/test/fixtures/module_result_fixtures.rb b/plugins/mezuro/test/fixtures/module_result_fixtures.rb index cc8e85c..83cd1ed 100644 --- a/plugins/mezuro/test/fixtures/module_result_fixtures.rb +++ b/plugins/mezuro/test/fixtures/module_result_fixtures.rb @@ -14,8 +14,8 @@ class ModuleResultFixtures :date => '2011-10-20T18:26:43.151+00:00', :grade => 10.0, :metric_result => [ - MetricResultFixtures.amloc_result_hash, - MetricResultFixtures.sc_result_hash], + MetricResultFixtures.native_metric_hash, + MetricResultFixtures.compound_metric_hash], :compound_metric_with_error => [CompoundMetricWithErrorFixtures.create_hash] } end -- libgit2 0.21.2