From d23a42e4c110268892d79fbe6b9121f5a895b14a Mon Sep 17 00:00:00 2001 From: João M. M. da Silva + Alessandro Palmeira Date: Mon, 6 Aug 2012 17:53:03 -0300 Subject: [PATCH] [Mezuro] draft for exceptions --- plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb | 2 +- plugins/mezuro/lib/kalibro/error.rb | 4 ++++ plugins/mezuro/lib/kalibro/model.rb | 19 ++++++++++++++----- plugins/mezuro/lib/kalibro/project.rb | 4 ++-- plugins/mezuro/lib/mezuro_plugin/project_content.rb | 2 +- plugins/mezuro/views/content_viewer/_project_error.rhtml | 2 +- 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb index 14bd0c8..291a4a8 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb @@ -5,7 +5,7 @@ class MezuroPluginProfileController < ProfileController def project_state @content = profile.articles.find(params[:id]) project = @content.project - state = project.error.nil? ? project.state : "ERROR" + state = project.kalibro_error.nil? ? project.state : "ERROR" render :text => state end diff --git a/plugins/mezuro/lib/kalibro/error.rb b/plugins/mezuro/lib/kalibro/error.rb index 3c7f95c..2768b3d 100644 --- a/plugins/mezuro/lib/kalibro/error.rb +++ b/plugins/mezuro/lib/kalibro/error.rb @@ -2,6 +2,10 @@ class Kalibro::Error < Kalibro::Model attr_accessor :error_class, :message, :stack_trace_element, :cause + def initialize(exception) + @message = exception.message + end + def stack_trace_element=(value) @stack_trace_element = Kalibro::StackTraceElement.to_objects_array value end diff --git a/plugins/mezuro/lib/kalibro/model.rb b/plugins/mezuro/lib/kalibro/model.rb index 04c82bd..e2f94b1 100644 --- a/plugins/mezuro/lib/kalibro/model.rb +++ b/plugins/mezuro/lib/kalibro/model.rb @@ -1,7 +1,10 @@ class Kalibro::Model + attr_accessor :errors + def initialize(attributes={}) attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) } + @errors = [] end def to_hash(options={}) @@ -46,16 +49,22 @@ class Kalibro::Model begin self.class.request(save_endpoint, save_action, save_params) true - rescue Exception => error - false + rescue Exception => exception + add_error exception + false end end + + def add_error(exception) + @errors << exception + end def destroy - begin + # begin self.class.request(destroy_endpoint, destroy_action, destroy_params) - rescue Exception - end + #rescue Exception => exception + # add_error exception + #end end protected diff --git a/plugins/mezuro/lib/kalibro/project.rb b/plugins/mezuro/lib/kalibro/project.rb index a67ccbf..5eef9a6 100644 --- a/plugins/mezuro/lib/kalibro/project.rb +++ b/plugins/mezuro/lib/kalibro/project.rb @@ -1,6 +1,6 @@ class Kalibro::Project < Kalibro::Model - attr_accessor :name, :license, :description, :repository, :configuration_name, :state, :error + attr_accessor :name, :license, :description, :repository, :configuration_name, :state, :kalibro_error def self.all_names request("Project", :get_project_names)[:project_name] @@ -15,7 +15,7 @@ class Kalibro::Project < Kalibro::Model end def error=(value) - @error = Kalibro::Error.to_object value + @kalibro_error = Kalibro::Error.to_object value end def process_project(days = '0') diff --git a/plugins/mezuro/lib/mezuro_plugin/project_content.rb b/plugins/mezuro/lib/mezuro_plugin/project_content.rb index 99dbc92..09394a5 100644 --- a/plugins/mezuro/lib/mezuro_plugin/project_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/project_content.rb @@ -51,7 +51,7 @@ Kalibro::ProjectResult.first_result_after(name, date) begin @module_result ||= Kalibro::ModuleResult.find_by_project_name_and_module_name_and_date(name, module_name, date) rescue Exception => error - errors.add_to_base(error.message) + raise error end end diff --git a/plugins/mezuro/views/content_viewer/_project_error.rhtml b/plugins/mezuro/views/content_viewer/_project_error.rhtml index 0bb2c75..5df49c5 100644 --- a/plugins/mezuro/views/content_viewer/_project_error.rhtml +++ b/plugins/mezuro/views/content_viewer/_project_error.rhtml @@ -2,7 +2,7 @@

<%= "State when error ocurred: #{@project.state}" %>
- <% error = @project.error %> + <% error = @project.kalibro_error %> <%= error.message %>