diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb index 1104cb8..0af19de 100644 --- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb +++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb @@ -7,11 +7,27 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @base_tools = Kalibro::BaseTool.all end - def new_metric_configuration + def new_native @configuration_content = profile.articles.find(params[:id]) - @metric = Kalibro::BaseTool.find_by_name(params[:base_tool]).metric params[:metric_name] + @base_tool_name = params[:base_tool_name] + @metric = Kalibro::BaseTool.find_by_name(@base_tool_name).metric params[:metric_name] + @reading_group_names_and_ids = reading_group_names_and_ids end - + + def create_native + metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration]) + metric_configuration.save + + if metric_configuration_has_errors? metric_configuration + redirect_to_error_page metric_configuration.errors[0].message + else + id = params[:id] + metric_name = params[:metric_configuration][:metric][:name] + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_native?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}" + end + end + +=begin def new_compound_metric_configuration @configuration_content = profile.articles.find(params[:id]) @metric_configurations = @configuration_content.metric_configurations @@ -33,17 +49,6 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @metric = @metric_configuration.metric end - def create_metric_configuration - id = params[:id] - metric_name = params[:metric_configuration][:metric][:name] - metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration]) - metric_configuration.save - if metric_configuration_has_errors? metric_configuration - redirect_to_error_page metric_configuration.errors[0].message - else - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}" - end - end def create_compound_metric_configuration id = params[:id] @@ -92,11 +97,20 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle redirect_to "/#{profile.identifier}/#{configuration_content.slug}" end end +=end private + def reading_group_names_and_ids + array = Kalibro::ReadingGroup.all.map { |reading_group| [reading_group.name, reading_group.id] } + array.sort { |x,y| x.first.downcase <=> y.first.downcase } + end + + def metric_configuration_has_errors? metric_configuration + not metric_configuration.errors.empty? + end + def configuration_content_has_errors? not @configuration_content.errors[:base].nil? end - end diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_myprofile_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_myprofile_controller.rb index d9a1b1d..e3f23bd 100644 --- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_myprofile_controller.rb +++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_myprofile_controller.rb @@ -18,11 +18,7 @@ class MezuroPluginMyprofileController < ProfileController #MyprofileController? redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}" end - def metric_configuration_has_errors? metric_configuration - not metric_configuration.errors.empty? - end - - def process_error_message message + def process_error_message message #FIXME if message =~ /bla/ message else diff --git a/plugins/mezuro/lib/kalibro/metric.rb b/plugins/mezuro/lib/kalibro/metric.rb index 5151db8..2c8066c 100644 --- a/plugins/mezuro/lib/kalibro/metric.rb +++ b/plugins/mezuro/lib/kalibro/metric.rb @@ -1,6 +1,6 @@ class Kalibro::Metric < Kalibro::Model - attr_accessor :name, :compound, :scope, :description, :script, :origin, :language + attr_accessor :name, :compound, :scope, :description, :script, :language def languages @language diff --git a/plugins/mezuro/lib/mezuro_plugin/helpers/content_viewer_helper.rb b/plugins/mezuro/lib/mezuro_plugin/helpers/content_viewer_helper.rb index db12ddf..72cbd7a 100644 --- a/plugins/mezuro/lib/mezuro_plugin/helpers/content_viewer_helper.rb +++ b/plugins/mezuro/lib/mezuro_plugin/helpers/content_viewer_helper.rb @@ -52,6 +52,11 @@ class MezuroPlugin::Helpers::ContentViewerHelper MezuroPluginModuleResultController.helpers.distance_of_time_in_words(0, seconds, include_seconds = true) end + def self.aggregation_options + [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"], + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] + end + private def self.discretize_array(array) diff --git a/plugins/mezuro/test/fixtures/metric_fixtures.rb b/plugins/mezuro/test/fixtures/metric_fixtures.rb index 4c44987..05a3d49 100644 --- a/plugins/mezuro/test/fixtures/metric_fixtures.rb +++ b/plugins/mezuro/test/fixtures/metric_fixtures.rb @@ -13,7 +13,7 @@ class MetricFixtures end def self.total_cof_hash - {:name => 'Total Coupling Factor', :compound => "false", :scope => 'APPLICATION', :origin => 'Analizo', :language => ['JAVA']} + {:name => 'Total Coupling Factor', :compound => "false", :scope => 'APPLICATION', :language => ['JAVA']} end def self.amloc @@ -21,7 +21,7 @@ class MetricFixtures end def self.amloc_hash - {:name => 'Average Method LOC', :compound => "false", :scope => 'CLASS', :origin => 'Analizo', :language => ['JAVA']} + {:name => 'Average Method LOC', :compound => "false", :scope => 'CLASS', :language => ['JAVA']} end end diff --git a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb index e7266d0..6c4a26b 100644 --- a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb +++ b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb @@ -4,6 +4,7 @@ require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures" require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_fixtures" require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures" require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/reading_group_fixtures" class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase @@ -26,8 +27,11 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase @base_tool = BaseToolFixtures.base_tool @base_tool_hash = BaseToolFixtures.base_tool_hash -=begin @metric = MetricFixtures.amloc + + @reading_group = ReadingGroupFixtures.reading_group + +=begin @metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration @metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash @compound_metric_configuration = MetricConfigurationFixtures.sc_metric_configuration @@ -49,16 +53,25 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase assert_response 200 end -=begin - should 'test new metric configuration' do - Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool, {:base_tool_name => @base_tool.name}).returns({:base_tool => @base_tool_hash}) - get :new_metric_configuration, :profile => @profile.identifier, :id => @content.id, :base_tool => @base_tool.name, :metric_name => @metric.name + should 'test new native metric configuration' do + Kalibro::BaseTool.expects(:find_by_name).with(@base_tool.name).returns(@base_tool) + Kalibro::ReadingGroup.expects(:all).returns([@reading_group]) + get :new_native, :profile => @profile.identifier, :id => @content.id, :base_tool_name => @base_tool.name, :metric_name => @metric.name assert_equal @content, assigns(:configuration_content) assert_equal @metric.name, assigns(:metric).name + assert_equal @base_tool.name, assigns(:base_tool_name) + assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids) assert_response 200 end + should 'test create native metric configuration' do + Kalibro::MetricConfiguration.expects(:new).with(@metric_configuration_hash).returns(@created_metric_configuration) + @created_metric_configuration.expects(:save).returns(true) + get :create_native, :profile => @profile.identifier, :id => @content.id, :metric_configuration => @native_hash + assert_response 200 + end +=begin should 'test new compound metric configuration' do Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, { :configuration_name => @content.name}).returns({:configuration => @configuration_hash}) @@ -95,16 +108,6 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase assert_response 200 end - should 'test create native metric configuration' do - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { - :metric_configuration => @metric_configuration.to_hash, - :configuration_name => @metric_configuration.configuration_name}) - get :create_metric_configuration, - :profile => @profile.identifier, - :id => @content.id, - :metric_configuration => @native_hash - assert_response 302 - end should 'test compound metric creation' do Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { diff --git a/plugins/mezuro/test/unit/mezuro_plugin/helpers/content_viewer_helper_test.rb b/plugins/mezuro/test/unit/mezuro_plugin/helpers/content_viewer_helper_test.rb index 7490463..a06585b 100644 --- a/plugins/mezuro/test/unit/mezuro_plugin/helpers/content_viewer_helper_test.rb +++ b/plugins/mezuro/test/unit/mezuro_plugin/helpers/content_viewer_helper_test.rb @@ -55,4 +55,9 @@ class ContentViewerHelperTest < ActiveSupport::TestCase assert_equal 'AverageMethodLOC', @helper.format_name(metric_configuration_snapshot) end + should 'create aggregation options array' do + assert_equal [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"], + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]], @helper.aggregation_options + end + end diff --git a/plugins/mezuro/views/content_viewer/show_configuration.rhtml b/plugins/mezuro/views/content_viewer/show_configuration.rhtml index 8c65ea1..f510dd5 100644 --- a/plugins/mezuro/views/content_viewer/show_configuration.rhtml +++ b/plugins/mezuro/views/content_viewer/show_configuration.rhtml @@ -53,7 +53,7 @@ <% else %>
+ Label + | ++ Beginning + | ++ End + | ++ Grade + | ++ Color + | ++ | + |
- Label - | -- Beginning - | -- End - | -- Grade - | -- Color - | -- | - |
- <%= m.label :origin, "Collector Name:" %> - <%= @metric.origin %> - <%= m.hidden_field "origin", :value => @metric.origin %> -
-- <%= m.label :name, "Metric Name:" %> - <%= @metric.name %> - <%= m.hidden_field "name", :value => @metric.name %> -
- - <% m.label :description, "Description:" %> - <% @metric.description %> - <% m.hidden_field "description", :value => @metric.description %> - - <% end %> -- <%= f.label :code, "Code:" %> - <%= f.text_field :code %> -
-- <%= f.label :aggregation_form, "Aggregation Form:" %> - <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"], - ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %> -
-- <%= f.label :weight, "Weight:" %> - <%= f.text_field :weight %> -
- -- <%= f.submit "Add" %> -
- -<% end %> - diff --git a/plugins/mezuro/views/mezuro_plugin_metric_configuration/new_native.html.erb b/plugins/mezuro/views/mezuro_plugin_metric_configuration/new_native.html.erb new file mode 100644 index 0000000..21c8d7f --- /dev/null +++ b/plugins/mezuro/views/mezuro_plugin_metric_configuration/new_native.html.erb @@ -0,0 +1,44 @@ + + ++ <%= m.label :name, "Metric Name:" %> + <%= @metric.name %> + <%= m.hidden_field "name", :value => @metric.name %> +
+ <% m.label :description, "Description:" %> + <% @metric.description %> + <% m.hidden_field "description", :value => @metric.description %> + <% end %> + + <%= required labelled_form_field _('Code:'), f.text_field(:code) %> + + <%= required labelled_form_field _('Aggregation Form:'), + f.select(:aggregation_form, MezuroPlugin::Helpers::ContentViewerHelper.aggregation_options) %> + + <%= required labelled_form_field _('Weight:'), f.text_field(:weight) %> + + <%= required labelled_form_field _('Reading Group:'), + f.select(:reading_group_id, @reading_group_names_and_ids) %> + ++ <%= f.submit "Add" %> +
+ +<% end %> + -- libgit2 0.21.2