diff --git a/plugins/mezuro/lib/kalibro/client/configuration_client.rb b/plugins/mezuro/lib/kalibro/client/configuration_client.rb index 1bd56cc..59cdb52 100644 --- a/plugins/mezuro/lib/kalibro/client/configuration_client.rb +++ b/plugins/mezuro/lib/kalibro/client/configuration_client.rb @@ -4,6 +4,7 @@ class Kalibro::Client::ConfigurationClient configuration = Kalibro::Entities::Configuration.new configuration.name = configuration_content.name configuration.description = configuration_content.description + configuration.metric_ids = configuration_content.metric_ids new.save(configuration) end diff --git a/plugins/mezuro/lib/kalibro/client/metrics_client.rb b/plugins/mezuro/lib/kalibro/client/metrics_client.rb new file mode 100644 index 0000000..f854aca --- /dev/null +++ b/plugins/mezuro/lib/kalibro/client/metrics_client.rb @@ -0,0 +1,8 @@ +class Kalibro::Client::MetricsClient + + def self.all_metrics + [Kalibro::Entities::Metric.new("LOC", "class", "Lines of code", 1), + Kalibro::Entities::Metric.new("LCOM", "class", "Lack of cohesion", 2)] + end + +end diff --git a/plugins/mezuro/lib/kalibro/entities/configuration.rb b/plugins/mezuro/lib/kalibro/entities/configuration.rb index 3ed1a48..fb49e92 100644 --- a/plugins/mezuro/lib/kalibro/entities/configuration.rb +++ b/plugins/mezuro/lib/kalibro/entities/configuration.rb @@ -1,6 +1,6 @@ class Kalibro::Entities::Configuration < Kalibro::Entities::Entity - attr_accessor :name, :description, :metric_configuration + attr_accessor :name, :description, :metric_configuration, :metric_ids def metric_configuration=(value) @metric_configuration = to_entity_array(value, Kalibro::Entities::MetricConfiguration) diff --git a/plugins/mezuro/lib/kalibro/entities/metric.rb b/plugins/mezuro/lib/kalibro/entities/metric.rb index c8efbbc..bb789e4 100644 --- a/plugins/mezuro/lib/kalibro/entities/metric.rb +++ b/plugins/mezuro/lib/kalibro/entities/metric.rb @@ -1,5 +1,12 @@ class Kalibro::Entities::Metric < Kalibro::Entities::Entity - attr_accessor :name, :scope, :description + attr_accessor :name, :scope, :description, :id -end \ No newline at end of file + def initialize name, scope, description, id + @name = name + @scope = scope + @description = description + @id = id + end + +end diff --git a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb index c42bed3..48cdacf 100644 --- a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb @@ -1,5 +1,7 @@ class MezuroPlugin::ConfigurationContent < Article + attr_accessor :metric_ids + def self.short_description 'Kalibro configuration' end diff --git a/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb b/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb index 08583f8..174b968 100644 --- a/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb +++ b/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb @@ -23,6 +23,11 @@ class ConfigurationContentTest < ActiveSupport::TestCase assert_equal 'Sets of thresholds to interpret metrics', MezuroPlugin::ConfigurationContent.description end + should 'accept metric_ids' do + @content.metric_ids = [1,5] + assert_equal @content.metric_ids, [1,5] + end + should 'have an html view' do assert_not_nil @content.to_html end diff --git a/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb b/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb index 3b00fd8..92a78df 100644 --- a/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb +++ b/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb @@ -6,6 +6,7 @@ rescue @configuration = nil end + @metrics = Kalibro::Client::MetricsClient.all_metrics %> <%= error_messages_for 'kalibro_configuration' %> @@ -18,3 +19,12 @@ <%= required f.text_field(:name) %> <%= f.text_field :description %>
+ +

Metrics

+<% @metrics.each do |metric| %> +
+ <%= check_box_tag "article[metric_ids][]", metric.id, true, :id => "article_metric_ids_#{metric.id}" %> + <%= label_tag "article_metric_ids_#{metric.id}", metric.name %> + <%= metric.description %> +
+<% end %> diff --git a/plugins/mezuro/views/content_viewer/show_configuration.rhtml b/plugins/mezuro/views/content_viewer/show_configuration.rhtml index 3da7554..ebfb122 100644 --- a/plugins/mezuro/views/content_viewer/show_configuration.rhtml +++ b/plugins/mezuro/views/content_viewer/show_configuration.rhtml @@ -1,12 +1,12 @@ -<% @configuration = @page.configuration %> +<% @configuration_content = @page %> - + - +
<%= _('Name') %><%= @configuration.name %><%= @configuration_content.name %>
<%= _('Description') %><%= @configuration.description %><%= @configuration_content.description %>
-- libgit2 0.21.2