kalibro_client 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +27 -0
- data/AUTHORS +4 -0
- data/COPYING +674 -0
- data/COPYING.LESSER +165 -0
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +6 -0
- data/cucumber.yml +1 -0
- data/features/kalibro_configuration/all.feature +10 -0
- data/features/kalibro_configuration/creation.feature +9 -0
- data/features/kalibro_configuration/destroy.feature +10 -0
- data/features/kalibro_configuration/metric_configurations.feature +12 -0
- data/features/metric_collector_details/all_names.feature +8 -0
- data/features/metric_collector_details/find_by_name.feature +12 -0
- data/features/metric_configuration/creation.feature +11 -0
- data/features/metric_configuration/destroy.feature +12 -0
- data/features/metric_configuration/find.feature +18 -0
- data/features/metric_configuration/metric_configurations_of.feature +18 -0
- data/features/metric_result/descendant_values.feature +19 -0
- data/features/metric_result/history_of.feature +20 -0
- data/features/metric_result/metric_results_of.feature +20 -0
- data/features/module_result/children.feature +19 -0
- data/features/module_result/find.feature +22 -0
- data/features/module_result/history_of.feature +19 -0
- data/features/processing/first_processing_after.feature +18 -0
- data/features/processing/first_processing_of.feature +18 -0
- data/features/processing/has_processing.feature +18 -0
- data/features/processing/has_processing_after.feature +18 -0
- data/features/processing/has_processing_before.feature +18 -0
- data/features/processing/has_ready_processing.feature +18 -0
- data/features/processing/last_processing_before.feature +18 -0
- data/features/processing/last_processing_of.feature +18 -0
- data/features/processing/last_processing_state_of.feature +18 -0
- data/features/processing/last_ready_processing_of.feature +19 -0
- data/features/processing/processing_of.feature +32 -0
- data/features/processing/processing_with_date_of.feature +32 -0
- data/features/project/all.feature +10 -0
- data/features/project/creation.feature +9 -0
- data/features/project/destroy.feature +10 -0
- data/features/project/exists.feature +9 -0
- data/features/project/find.feature +10 -0
- data/features/range/destroy.feature +14 -0
- data/features/range/exists.feature +13 -0
- data/features/range/find.feature +14 -0
- data/features/range/ranges_of.feature +22 -0
- data/features/range/save.feature +14 -0
- data/features/reading/destroy.feature +13 -0
- data/features/reading/exists.feature +13 -0
- data/features/reading/find.feature +11 -0
- data/features/reading/readings_of.feature +11 -0
- data/features/reading_group/all.feature +10 -0
- data/features/reading_group/creation.feature +9 -0
- data/features/reading_group/destroy.feature +11 -0
- data/features/repository/all.feature +14 -0
- data/features/repository/cancel_processing.feature +14 -0
- data/features/repository/destroy.feature +14 -0
- data/features/repository/exists.feature +14 -0
- data/features/repository/find.feature +14 -0
- data/features/repository/of.feature +15 -0
- data/features/repository/process.feature +16 -0
- data/features/repository/types.feature +8 -0
- data/features/step_definitions/configuration_steps.rb +40 -0
- data/features/step_definitions/metric_collector_details_steps.rb +28 -0
- data/features/step_definitions/metric_configuration_steps.rb +61 -0
- data/features/step_definitions/metric_result_steps.rb +33 -0
- data/features/step_definitions/metric_steps.rb +3 -0
- data/features/step_definitions/module_result_steps.rb +46 -0
- data/features/step_definitions/processing_steps.rb +95 -0
- data/features/step_definitions/project_steps.rb +48 -0
- data/features/step_definitions/range_steps.rb +72 -0
- data/features/step_definitions/reading_group_steps.rb +36 -0
- data/features/step_definitions/reading_steps.rb +47 -0
- data/features/step_definitions/repository_steps.rb +71 -0
- data/features/support/env.rb +25 -0
- data/features/support/kalibro_cucumber_helpers.yml.sample +3 -0
- data/kalibro_client.gemspec +49 -0
- data/lib/kalibro_client.rb +62 -0
- data/lib/kalibro_client/entities.rb +40 -0
- data/lib/kalibro_client/entities/base.rb +196 -0
- data/lib/kalibro_client/entities/configurations/base.rb +13 -0
- data/lib/kalibro_client/entities/configurations/kalibro_configuration.rb +37 -0
- data/lib/kalibro_client/entities/configurations/kalibro_range.rb +77 -0
- data/lib/kalibro_client/entities/configurations/metric_configuration.rb +93 -0
- data/lib/kalibro_client/entities/configurations/range_snapshot.rb +37 -0
- data/lib/kalibro_client/entities/configurations/reading.rb +56 -0
- data/lib/kalibro_client/entities/configurations/reading_group.rb +34 -0
- data/lib/kalibro_client/entities/miscellaneous/base.rb +57 -0
- data/lib/kalibro_client/entities/miscellaneous/compound_metric.rb +21 -0
- data/lib/kalibro_client/entities/miscellaneous/date_metric_result.rb +14 -0
- data/lib/kalibro_client/entities/miscellaneous/date_module_result.rb +18 -0
- data/lib/kalibro_client/entities/miscellaneous/granularity.rb +54 -0
- data/lib/kalibro_client/entities/miscellaneous/metric.rb +19 -0
- data/lib/kalibro_client/entities/miscellaneous/native_metric.rb +24 -0
- data/lib/kalibro_client/entities/processor/base.rb +16 -0
- data/lib/kalibro_client/entities/processor/kalibro_module.rb +27 -0
- data/lib/kalibro_client/entities/processor/metric_collector_details.rb +53 -0
- data/lib/kalibro_client/entities/processor/metric_result.rb +79 -0
- data/lib/kalibro_client/entities/processor/module_result.rb +82 -0
- data/lib/kalibro_client/entities/processor/process_time.rb +31 -0
- data/lib/kalibro_client/entities/processor/processing.rb +109 -0
- data/lib/kalibro_client/entities/processor/project.rb +34 -0
- data/lib/kalibro_client/entities/processor/repository.rb +75 -0
- data/lib/kalibro_client/errors.rb +18 -0
- data/lib/kalibro_client/errors/record_not_found.rb +22 -0
- data/lib/kalibro_client/errors/standard.rb +24 -0
- data/lib/kalibro_client/helpers/aggregation_options.rb +25 -0
- data/lib/kalibro_client/helpers/hash_converters.rb +48 -0
- data/lib/kalibro_client/helpers/request_methods.rb +55 -0
- data/lib/kalibro_client/helpers/xml_converters.rb +20 -0
- data/lib/kalibro_client/kalibro_cucumber_helpers.rb +60 -0
- data/lib/kalibro_client/kalibro_cucumber_helpers/configuration.rb +30 -0
- data/lib/kalibro_client/kalibro_cucumber_helpers/hooks.rb +25 -0
- data/lib/kalibro_client/version.rb +19 -0
- data/lib/rake/test_task.rb +57 -0
- data/spec/entities/base_spec.rb +313 -0
- data/spec/entities/configurations/base_spec.rb +26 -0
- data/spec/entities/configurations/kalibro_configuration_spec.rb +91 -0
- data/spec/entities/configurations/kalibro_range_spec.rb +174 -0
- data/spec/entities/configurations/metric_configuration_spec.rb +230 -0
- data/spec/entities/configurations/range_snapshot_spec.rb +50 -0
- data/spec/entities/configurations/reading_group_spec.rb +60 -0
- data/spec/entities/configurations/reading_spec.rb +87 -0
- data/spec/entities/miscellaneous/base_spec.rb +49 -0
- data/spec/entities/miscellaneous/compound_metric_spec.rb +36 -0
- data/spec/entities/miscellaneous/date_metric_result_spec.rb +4 -0
- data/spec/entities/miscellaneous/date_module_result_spec.rb +0 -0
- data/spec/entities/miscellaneous/granularity_spec.rb +96 -0
- data/spec/entities/miscellaneous/metric_spec.rb +15 -0
- data/spec/entities/miscellaneous/native_metric_spec.rb +37 -0
- data/spec/entities/processor/base_spec.rb +26 -0
- data/spec/entities/processor/metric_collector_details_spec.rb +146 -0
- data/spec/entities/processor/metric_result_spec.rb +209 -0
- data/spec/entities/processor/module_result_spec.rb +178 -0
- data/spec/entities/processor/process_time_spec.rb +33 -0
- data/spec/entities/processor/processing_spec.rb +333 -0
- data/spec/entities/processor/project_spec.rb +68 -0
- data/spec/entities/processor/repository_spec.rb +140 -0
- data/spec/factories/date_metric_results.rb +30 -0
- data/spec/factories/date_module_results.rb +24 -0
- data/spec/factories/granularities.rb +23 -0
- data/spec/factories/kalibro_configurations.rb +34 -0
- data/spec/factories/kalibro_module.rb +28 -0
- data/spec/factories/kalibro_ranges.rb +40 -0
- data/spec/factories/metric_collector_details.rb +30 -0
- data/spec/factories/metric_configurations.rb +31 -0
- data/spec/factories/metric_results.rb +24 -0
- data/spec/factories/metrics.rb +48 -0
- data/spec/factories/models.rb +23 -0
- data/spec/factories/module_results.rb +43 -0
- data/spec/factories/process_times.rb +27 -0
- data/spec/factories/processings.rb +24 -0
- data/spec/factories/projects.rb +35 -0
- data/spec/factories/ranges_snapshot.rb +26 -0
- data/spec/factories/reading_groups.rb +28 -0
- data/spec/factories/readings.rb +30 -0
- data/spec/factories/repositories.rb +39 -0
- data/spec/helpers/aggregation_options_spec.rb +31 -0
- data/spec/helpers/hash_converters_spec.rb +111 -0
- data/spec/helpers/xml_converters_spec.rb +64 -0
- data/spec/kalibro_entities_spec.rb +112 -0
- data/spec/savon/fixtures/config.yml +2 -0
- data/spec/savon/fixtures/invalid_config.yml +2 -0
- data/spec/savon/fixtures/project/does_not_exists.xml +1 -0
- data/spec/savon/savon_test_helper.rb +14 -0
- data/spec/spec_helper.rb +111 -0
- metadata +479 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
# This file is part of KalibroClient
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module KalibroClient
|
18
|
+
module Entities
|
19
|
+
module Configurations
|
20
|
+
class RangeSnapshot < KalibroClient::Entities::Configurations::Base
|
21
|
+
attr_accessor :beginning, :end, :label, :grade, :color, :comments
|
22
|
+
|
23
|
+
def beginning=(value)
|
24
|
+
@beginning = ((value == "-INF") ? -1.0/0 : value.to_f)
|
25
|
+
end
|
26
|
+
|
27
|
+
def end=(value)
|
28
|
+
@end = ((value == "INF") ? 1.0/0 : value.to_f)
|
29
|
+
end
|
30
|
+
|
31
|
+
def grade=(value)
|
32
|
+
@grade = value.to_f
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# This file is part of KalibroClient
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module KalibroClient
|
18
|
+
module Entities
|
19
|
+
module Configurations
|
20
|
+
class Reading < KalibroClient::Entities::Configurations::Base
|
21
|
+
|
22
|
+
attr_accessor :id, :label, :grade, :color, :reading_group_id
|
23
|
+
|
24
|
+
def id=(value)
|
25
|
+
@id = value.to_i
|
26
|
+
end
|
27
|
+
|
28
|
+
def grade=(value)
|
29
|
+
@grade = value.to_f
|
30
|
+
end
|
31
|
+
|
32
|
+
def reading_group_id=(value)
|
33
|
+
@reading_group_id = value.to_i
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.readings_of(reading_group_id)
|
37
|
+
create_objects_array_from_hash(request('', {}, :get, "reading_groups/#{reading_group_id}"))
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def save_params
|
43
|
+
{reading: self.to_hash, reading_group_id: reading_group_id}
|
44
|
+
end
|
45
|
+
|
46
|
+
def save_prefix
|
47
|
+
"reading_groups/#{reading_group_id}"
|
48
|
+
end
|
49
|
+
|
50
|
+
def destroy_prefix
|
51
|
+
"reading_groups/#{reading_group_id}"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# This file is part of KalibroClient
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module KalibroClient
|
18
|
+
module Entities
|
19
|
+
module Configurations
|
20
|
+
class ReadingGroup < KalibroClient::Entities::Configurations::Base
|
21
|
+
|
22
|
+
attr_accessor :id, :name, :description
|
23
|
+
|
24
|
+
def id=(value)
|
25
|
+
@id = value.to_i
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.all
|
29
|
+
create_objects_array_from_hash(request('', {}, :get))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module KalibroClient
|
2
|
+
module Entities
|
3
|
+
module Miscellaneous
|
4
|
+
class Base
|
5
|
+
def initialize(attributes={})
|
6
|
+
attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
|
7
|
+
end
|
8
|
+
|
9
|
+
include HashConverters
|
10
|
+
def to_hash(options={})
|
11
|
+
hash = Hash.new
|
12
|
+
excepts = options[:except].nil? ? [] : options[:except]
|
13
|
+
|
14
|
+
fields.each do |field|
|
15
|
+
hash = field_to_hash(field).merge(hash) if !excepts.include?(field)
|
16
|
+
end
|
17
|
+
|
18
|
+
hash
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.to_object value
|
22
|
+
value.kind_of?(Hash) ? new(value) : value
|
23
|
+
end
|
24
|
+
|
25
|
+
def ==(another)
|
26
|
+
unless self.class == another.class
|
27
|
+
return false
|
28
|
+
end
|
29
|
+
|
30
|
+
self.variable_names.each do |name|
|
31
|
+
next if name == "created_at" or name == "updated_at"
|
32
|
+
unless self.send("#{name}") == another.send("#{name}") then
|
33
|
+
return false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
return true
|
38
|
+
end
|
39
|
+
|
40
|
+
protected
|
41
|
+
|
42
|
+
def fields
|
43
|
+
instance_variable_names.each.collect { |variable| variable.to_s.sub(/@/, '') }
|
44
|
+
end
|
45
|
+
|
46
|
+
def instance_variable_names
|
47
|
+
instance_variables.map { |var| var.to_s }
|
48
|
+
end
|
49
|
+
|
50
|
+
def variable_names
|
51
|
+
instance_variable_names.each.collect { |variable| variable.to_s.sub(/@/, '') }
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module KalibroClient
|
2
|
+
module Entities
|
3
|
+
module Miscellaneous
|
4
|
+
class CompoundMetric < Metric
|
5
|
+
attr_accessor :script
|
6
|
+
def initialize(name, code, scope, script)
|
7
|
+
super('CompoundMetricSnapshot', name, code, scope)
|
8
|
+
@script = script
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.to_object(value)
|
12
|
+
if value.is_a?(Hash)
|
13
|
+
new(value['name'], value['code'], value['scope'], value['script'])
|
14
|
+
else
|
15
|
+
value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module KalibroClient
|
2
|
+
module Entities
|
3
|
+
module Miscellaneous
|
4
|
+
class DateMetricResult < KalibroClient::Entities::Miscellaneous::Base
|
5
|
+
attr_reader :date, :metric_result
|
6
|
+
|
7
|
+
def initialize(attributes={})
|
8
|
+
@date = attributes["date"]
|
9
|
+
@metric_result = KalibroClient::Entities::Processor::MetricResult.new attributes["metric_result"]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module KalibroClient
|
2
|
+
module Entities
|
3
|
+
module Miscellaneous
|
4
|
+
class DateModuleResult
|
5
|
+
attr_accessor :date, :module_result
|
6
|
+
|
7
|
+
def initialize(attributes={})
|
8
|
+
@date = attributes[:date]
|
9
|
+
@module_result = attributes[:module_result]
|
10
|
+
end
|
11
|
+
|
12
|
+
def result
|
13
|
+
@module_result.grade
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module KalibroClient
|
2
|
+
module Entities
|
3
|
+
module Miscellaneous
|
4
|
+
class Granularity
|
5
|
+
GRANULARITIES = [:METHOD, :CLASS, :PACKAGE, :SOFTWARE]
|
6
|
+
|
7
|
+
METHOD = GRANULARITIES[0]
|
8
|
+
CLASS = GRANULARITIES[1]
|
9
|
+
PACKAGE = GRANULARITIES[2]
|
10
|
+
SOFTWARE = GRANULARITIES[3]
|
11
|
+
|
12
|
+
attr_reader :type
|
13
|
+
|
14
|
+
def initialize(type)
|
15
|
+
if GRANULARITIES.include?(type)
|
16
|
+
@type = type
|
17
|
+
else
|
18
|
+
raise TypeError.new("Not supported granularity type #{type}")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def parent
|
23
|
+
return self if self.type == SOFTWARE
|
24
|
+
return Granularity.new(GRANULARITIES[GRANULARITIES.find_index(self.type) + 1])
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_s
|
28
|
+
self.type.to_s
|
29
|
+
end
|
30
|
+
|
31
|
+
def <(other_granularity)
|
32
|
+
GRANULARITIES.find_index(self.type) < GRANULARITIES.find_index(other_granularity.type)
|
33
|
+
end
|
34
|
+
|
35
|
+
def ==(other_granularity)
|
36
|
+
self.type == other_granularity.type
|
37
|
+
end
|
38
|
+
|
39
|
+
def <=(other_granularity)
|
40
|
+
(self < other_granularity) || (self == other_granularity)
|
41
|
+
end
|
42
|
+
|
43
|
+
def >=(other_granularity)
|
44
|
+
(self > other_granularity) || (self == other_granularity)
|
45
|
+
end
|
46
|
+
|
47
|
+
def >(other_granularity)
|
48
|
+
!(self <= other_granularity)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'kalibro_client/helpers/hash_converters'
|
2
|
+
|
3
|
+
module KalibroClient
|
4
|
+
module Entities
|
5
|
+
module Miscellaneous
|
6
|
+
class Metric < KalibroClient::Entities::Miscellaneous::Base
|
7
|
+
attr_accessor :type, :name, :code, :scope, :description
|
8
|
+
|
9
|
+
def initialize(type, name, code, scope)
|
10
|
+
@type = type
|
11
|
+
@name = name
|
12
|
+
@code = code
|
13
|
+
@scope = scope
|
14
|
+
@description = ""
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module KalibroClient
|
2
|
+
module Entities
|
3
|
+
module Miscellaneous
|
4
|
+
class NativeMetric < Metric
|
5
|
+
attr_accessor :languages, :metric_collector_name
|
6
|
+
|
7
|
+
# TODO: Deprecate this constructor
|
8
|
+
def initialize(name, code, scope, languages, metric_collector_name)
|
9
|
+
super('NativeMetricSnapshot', name, code, scope)
|
10
|
+
@languages = languages
|
11
|
+
@metric_collector_name = metric_collector_name
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.to_object(value)
|
15
|
+
if value.is_a?(Hash)
|
16
|
+
new(value['name'], value['code'], value['scope'], value['languages'], value['metric_collector_name'])
|
17
|
+
else
|
18
|
+
value
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file is part of KalibroClient
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module KalibroClient
|
18
|
+
module Entities
|
19
|
+
module Processor
|
20
|
+
class KalibroModule < KalibroClient::Entities::Processor::Base
|
21
|
+
|
22
|
+
attr_accessor :name, :granlrty, :id, :long_name, :module_result_id
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# This file is part of KalibroClient
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module KalibroClient
|
18
|
+
module Entities
|
19
|
+
module Processor
|
20
|
+
class MetricCollectorDetails < KalibroClient::Entities::Processor::Base
|
21
|
+
attr_accessor :name, :description, :supported_metrics, :wanted_metrics, :processing
|
22
|
+
|
23
|
+
def supported_metrics=(value)
|
24
|
+
@supported_metrics = {}
|
25
|
+
value.each do |code, metric|
|
26
|
+
@supported_metrics[code] = KalibroClient::Entities::Miscellaneous::Metric.new(metric[:type], metric[:name], metric[:code], metric[:scope])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def metric(name)
|
31
|
+
metric = self.supported_metrics.find {|code, metric| metric.name == name}
|
32
|
+
metric.nil? ? nil : metric.last
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.find_by_name(metric_collector_name)
|
36
|
+
begin
|
37
|
+
new request(:find, {name: metric_collector_name})["metric_collector_details"]
|
38
|
+
rescue
|
39
|
+
raise KalibroClient::Errors::RecordNotFound
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.all_names
|
44
|
+
request(:names, {}, :get)['metric_collector_names'].to_a
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.all
|
48
|
+
create_objects_array_from_hash(request('', {}, :get))
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|