diff --git a/plugins/mezuro/lib/kalibro/configuration.rb b/plugins/mezuro/lib/kalibro/configuration.rb index 6ce1525..f040dd1 100644 --- a/plugins/mezuro/lib/kalibro/configuration.rb +++ b/plugins/mezuro/lib/kalibro/configuration.rb @@ -22,20 +22,12 @@ class Kalibro::Configuration < Kalibro::Model new request("Configuration", :get_configuration, {:configuration_name => configuration_name})[:configuration] end - def self.create(configuration_content) - new ({ - :name => configuration_content.name, - :description => configuration_content.description - }).save - end - - def save - begin - self.class.request("Configuration", :save_configuration, {:configuration => to_hash}) - true - rescue Exception => error - false - end + def self.create(content) + attributes = { + :name => content.name, + :description => content.description + } + super attributes end def self.all_names diff --git a/plugins/mezuro/lib/kalibro/metric_configuration.rb b/plugins/mezuro/lib/kalibro/metric_configuration.rb index c70217f..6c1857d 100644 --- a/plugins/mezuro/lib/kalibro/metric_configuration.rb +++ b/plugins/mezuro/lib/kalibro/metric_configuration.rb @@ -48,17 +48,6 @@ class Kalibro::MetricConfiguration < Kalibro::Model metric_configuration end - def save - begin - self.class.request("MetricConfiguration", :save_metric_configuration, { - :metric_configuration => to_hash, - :configuration_name => configuration_name}) - true - rescue Exception => error - false - end - end - def destroy self.class.request("MetricConfiguration", :remove_metric_configuration, { :configuration_name => configuration_name, @@ -75,5 +64,9 @@ class Kalibro::MetricConfiguration < Kalibro::Model def native?(value) value.has_key?(:origin) ? true : false end - + + def save_params + {:metric_configuration => to_hash, :configuration_name => configuration_name} + end + end diff --git a/plugins/mezuro/lib/kalibro/model.rb b/plugins/mezuro/lib/kalibro/model.rb index 48f7c09..56375e9 100644 --- a/plugins/mezuro/lib/kalibro/model.rb +++ b/plugins/mezuro/lib/kalibro/model.rb @@ -35,6 +35,19 @@ class Kalibro::Model def self.to_object value value.kind_of?(Hash) ? new(value) : value end + + def self.create(attributes={}) + new(attributes).save + end + + def save + begin + self.class.request(save_endpoint, save_action, save_params) + true + rescue Exception => error + false + end + end protected @@ -72,5 +85,20 @@ class Kalibro::Model milliseconds = "." + (date.sec_fraction * 60 * 60 * 24 * 1000).to_s date.to_s[0..18] + milliseconds + date.to_s[19..-1] end - + + def class_name + self.class.name.gsub(/Kalibro::/,"") + end + + def save_endpoint + class_name + end + + def save_action + "save_#{class_name.underscore}".to_sym + end + + def save_params + {class_name.underscore.to_sym => self.to_hash} + end end diff --git a/plugins/mezuro/lib/kalibro/project.rb b/plugins/mezuro/lib/kalibro/project.rb index 262b06f..7ac187a 100644 --- a/plugins/mezuro/lib/kalibro/project.rb +++ b/plugins/mezuro/lib/kalibro/project.rb @@ -11,7 +11,7 @@ class Kalibro::Project < Kalibro::Model end def self.create(content) - new({ + attributes = { :name => content.name, :license => content.license, :description => content.description, @@ -20,22 +20,14 @@ class Kalibro::Project < Kalibro::Model :address => content.repository_url }, :configuration_name => content.configuration_name - }).save + } + super attributes end def destroy self.class.request("Project", :remove_project, {:project_name => name}) end - def save - begin - self.class.request("Project", :save_project, {:project => to_hash}) - true - rescue Exception => error - false - end - end - def repository=(value) @repository = Kalibro::Repository.to_object value end -- libgit2 0.21.2