kalibro_client 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/features/kalibro_configuration/all.feature +6 -6
- data/features/kalibro_configuration/creation.feature +5 -5
- data/features/kalibro_configuration/destroy.feature +6 -6
- data/features/kalibro_configuration/metric_configurations.feature +4 -4
- data/features/{range → kalibro_range}/destroy.feature +2 -2
- data/features/{range → kalibro_range}/exists.feature +2 -2
- data/features/{range → kalibro_range}/find.feature +2 -2
- data/features/{range → kalibro_range}/ranges_of.feature +4 -4
- data/features/{range → kalibro_range}/save.feature +2 -2
- data/features/kalibro_range/update.feature +54 -0
- data/features/metric_configuration/creation.feature +2 -2
- data/features/metric_configuration/destroy.feature +2 -2
- data/features/metric_configuration/find.feature +2 -2
- data/features/metric_configuration/metric_configurations_of.feature +8 -8
- data/features/metric_result/descendant_values.feature +2 -2
- data/features/metric_result/history_of.feature +2 -2
- data/features/metric_result/metric_results_of.feature +2 -2
- data/features/module_result/children.feature +2 -2
- data/features/module_result/find.feature +2 -2
- data/features/module_result/history_of.feature +2 -2
- data/features/processing/first_processing_after.feature +2 -2
- data/features/processing/first_processing_of.feature +2 -2
- data/features/processing/has_processing.feature +2 -2
- data/features/processing/has_processing_after.feature +2 -2
- data/features/processing/has_processing_before.feature +2 -2
- data/features/processing/has_ready_processing.feature +2 -2
- data/features/processing/last_processing_before.feature +2 -2
- data/features/processing/last_processing_of.feature +2 -2
- data/features/processing/last_processing_state_of.feature +2 -2
- data/features/processing/last_ready_processing_of.feature +2 -2
- data/features/processing/processing_of.feature +4 -4
- data/features/processing/processing_with_date_of.feature +4 -4
- data/features/project/update.feature +13 -0
- data/features/repository/all.feature +1 -1
- data/features/repository/cancel_processing.feature +1 -1
- data/features/repository/destroy.feature +1 -1
- data/features/repository/exists.feature +1 -1
- data/features/repository/find.feature +1 -1
- data/features/repository/of.feature +1 -1
- data/features/repository/process.feature +2 -2
- data/features/step_definitions/kalibro_configuration_steps.rb +40 -0
- data/features/step_definitions/metric_configuration_steps.rb +9 -9
- data/features/step_definitions/module_result_steps.rb +1 -1
- data/features/step_definitions/project_steps.rb +12 -0
- data/features/step_definitions/range_steps.rb +25 -1
- data/features/step_definitions/reading_steps.rb +1 -1
- data/features/step_definitions/repository_steps.rb +1 -1
- data/lib/kalibro_client/entities/base.rb +53 -19
- data/lib/kalibro_client/entities/configurations/base.rb +4 -1
- data/lib/kalibro_client/entities/configurations/kalibro_configuration.rb +1 -1
- data/lib/kalibro_client/entities/configurations/kalibro_range.rb +8 -8
- data/lib/kalibro_client/entities/configurations/metric_configuration.rb +7 -5
- data/lib/kalibro_client/entities/configurations/reading.rb +4 -4
- data/lib/kalibro_client/entities/configurations/reading_group.rb +4 -0
- data/lib/kalibro_client/entities/processor/base.rb +2 -1
- data/lib/kalibro_client/entities/processor/kalibro_module.rb +1 -0
- data/lib/kalibro_client/entities/processor/metric_collector_details.rb +7 -2
- data/lib/kalibro_client/entities/processor/metric_result.rb +9 -10
- data/lib/kalibro_client/entities/processor/module_result.rb +10 -2
- data/lib/kalibro_client/entities/processor/processing.rb +26 -10
- data/lib/kalibro_client/entities/processor/project.rb +4 -0
- data/lib/kalibro_client/entities/processor/repository.rb +63 -4
- data/lib/kalibro_client/helpers/date_attributes.rb +11 -0
- data/lib/kalibro_client/helpers/request_methods.rb +9 -0
- data/lib/kalibro_client/version.rb +1 -1
- data/spec/entities/base_spec.rb +106 -24
- data/spec/entities/configurations/kalibro_configuration_spec.rb +8 -8
- data/spec/entities/configurations/kalibro_range_spec.rb +18 -24
- data/spec/entities/configurations/metric_configuration_spec.rb +22 -23
- data/spec/entities/configurations/reading_group_spec.rb +27 -0
- data/spec/entities/configurations/reading_spec.rb +15 -7
- data/spec/entities/processor/metric_collector_details_spec.rb +19 -7
- data/spec/entities/processor/metric_result_spec.rb +40 -54
- data/spec/entities/processor/module_result_spec.rb +52 -3
- data/spec/entities/processor/processing_spec.rb +35 -92
- data/spec/entities/processor/project_spec.rb +52 -5
- data/spec/entities/processor/repository_spec.rb +255 -5
- data/spec/factories/kalibro_configurations.rb +3 -3
- data/spec/factories/kalibro_ranges.rb +9 -3
- data/spec/factories/metrics.rb +1 -1
- data/spec/factories/readings.rb +1 -1
- data/spec/factories/repositories.rb +1 -1
- data/spec/helpers/date_attributes_spec.rb +30 -0
- metadata +21 -14
- data/features/step_definitions/configuration_steps.rb +0 -40
@@ -1,8 +1,11 @@
|
|
1
|
+
require 'kalibro_client/helpers/date_attributes'
|
2
|
+
|
1
3
|
module KalibroClient
|
2
4
|
module Entities
|
3
5
|
module Configurations
|
4
6
|
class Base < KalibroClient::Entities::Base
|
5
|
-
|
7
|
+
include DateAttributes
|
8
|
+
|
6
9
|
def self.address
|
7
10
|
:configurations_address
|
8
11
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
6
6
|
# the Free Software Foundation, either version 3 of the License, or
|
7
7
|
# (at your option) any later version.
|
8
|
-
#
|
8
|
+
#
|
9
9
|
# This program is distributed in the hope that it will be useful,
|
10
10
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
11
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
@@ -25,16 +25,12 @@ module KalibroClient
|
|
25
25
|
@id = value.to_i
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
@
|
28
|
+
def metric_configuration_id=(value)
|
29
|
+
@metric_configuration_id = value.to_i
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
33
|
-
@
|
34
|
-
end
|
35
|
-
|
36
|
-
def end=(value)
|
37
|
-
@end = value == "INF" ? value : value.to_f
|
32
|
+
def reading_id=(value)
|
33
|
+
@reading_id = value.to_i
|
38
34
|
end
|
39
35
|
|
40
36
|
def label
|
@@ -68,6 +64,10 @@ module KalibroClient
|
|
68
64
|
"metric_configurations/#{metric_configuration_id}"
|
69
65
|
end
|
70
66
|
|
67
|
+
def update_prefix
|
68
|
+
"metric_configurations/#{metric_configuration_id}"
|
69
|
+
end
|
70
|
+
|
71
71
|
def destroy_prefix
|
72
72
|
"metric_configurations/#{metric_configuration_id}"
|
73
73
|
end
|
@@ -35,12 +35,10 @@ module KalibroClient
|
|
35
35
|
|
36
36
|
def metric=(value)
|
37
37
|
if value.is_a?(Hash)
|
38
|
-
if value['type'] == "NativeMetricSnapshot"
|
38
|
+
if value['type'] == "NativeMetricSnapshot"
|
39
39
|
@metric = KalibroClient::Entities::Miscellaneous::NativeMetric.to_object(value)
|
40
|
-
elsif value['type'] == "CompoundMetricSnapshot" || value[:type] == "CompoundMetricSnapshot"
|
41
|
-
@metric = KalibroClient::Entities::Miscellaneous::CompoundMetric.to_object(value)
|
42
40
|
else
|
43
|
-
@metric = KalibroClient::Entities::Miscellaneous::
|
41
|
+
@metric = KalibroClient::Entities::Miscellaneous::CompoundMetric.to_object(value)
|
44
42
|
end
|
45
43
|
elsif value.is_a?(KalibroClient::Entities::Miscellaneous::Metric)
|
46
44
|
@metric = value
|
@@ -70,7 +68,7 @@ module KalibroClient
|
|
70
68
|
|
71
69
|
def self.find(id)
|
72
70
|
metric_configuration = request(':id', {id: id}, :get)
|
73
|
-
raise KalibroClient::Errors::RecordNotFound unless metric_configuration['
|
71
|
+
raise KalibroClient::Errors::RecordNotFound unless metric_configuration['errors'].nil?
|
74
72
|
return new(metric_configuration['metric_configuration'])
|
75
73
|
end
|
76
74
|
|
@@ -82,6 +80,10 @@ module KalibroClient
|
|
82
80
|
end
|
83
81
|
end
|
84
82
|
|
83
|
+
def kalibro_ranges
|
84
|
+
KalibroClient::Entities::Configurations::KalibroRange.create_objects_array_from_hash(self.class.request(':id/kalibro_ranges', {id: id}, :get))
|
85
|
+
end
|
86
|
+
|
85
87
|
private
|
86
88
|
|
87
89
|
def save_params
|
@@ -25,10 +25,6 @@ module KalibroClient
|
|
25
25
|
@id = value.to_i
|
26
26
|
end
|
27
27
|
|
28
|
-
def grade=(value)
|
29
|
-
@grade = value.to_f
|
30
|
-
end
|
31
|
-
|
32
28
|
def reading_group_id=(value)
|
33
29
|
@reading_group_id = value.to_i
|
34
30
|
end
|
@@ -50,6 +46,10 @@ module KalibroClient
|
|
50
46
|
def destroy_prefix
|
51
47
|
"reading_groups/#{reading_group_id}"
|
52
48
|
end
|
49
|
+
|
50
|
+
def update_prefix
|
51
|
+
"reading_groups/#{reading_group_id}"
|
52
|
+
end
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -28,6 +28,10 @@ module KalibroClient
|
|
28
28
|
def self.all
|
29
29
|
create_objects_array_from_hash(request('', {}, :get))
|
30
30
|
end
|
31
|
+
|
32
|
+
def readings
|
33
|
+
KalibroClient::Entities::Configurations::Reading.create_objects_array_from_hash(self.class.request(':id/readings', {id: @id}, :get))
|
34
|
+
end
|
31
35
|
end
|
32
36
|
end
|
33
37
|
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'kalibro_client/helpers/date_attributes'
|
2
3
|
|
3
4
|
module KalibroClient
|
4
5
|
module Entities
|
5
6
|
module Processor
|
6
7
|
class Base < KalibroClient::Entities::Base
|
8
|
+
include DateAttributes
|
7
9
|
|
8
|
-
attr_accessor :created_at, :updated_at
|
9
10
|
def self.address
|
10
11
|
:processor_address
|
11
12
|
end
|
@@ -23,15 +23,20 @@ module KalibroClient
|
|
23
23
|
def supported_metrics=(value)
|
24
24
|
@supported_metrics = {}
|
25
25
|
value.each do |code, metric|
|
26
|
-
@supported_metrics[code] = KalibroClient::Entities::Miscellaneous::
|
26
|
+
@supported_metrics[code] = KalibroClient::Entities::Miscellaneous::NativeMetric.new(metric["name"], metric["code"], metric["scope"], metric["languages"], metric["metric_collector_name"])
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
30
|
+
def find_metric_by_name(name)
|
31
31
|
metric = self.supported_metrics.find {|code, metric| metric.name == name}
|
32
32
|
metric.nil? ? nil : metric.last
|
33
33
|
end
|
34
34
|
|
35
|
+
def find_metric_by_code(metric_code)
|
36
|
+
metric = self.supported_metrics.find {|code, metric| metric.code == metric_code}
|
37
|
+
metric.nil? ? nil : metric.last
|
38
|
+
end
|
39
|
+
|
35
40
|
def self.find_by_name(metric_collector_name)
|
36
41
|
begin
|
37
42
|
new request(:find, {name: metric_collector_name})["metric_collector_details"]
|
@@ -20,8 +20,9 @@ module KalibroClient
|
|
20
20
|
class MetricResult < KalibroClient::Entities::Processor::Base
|
21
21
|
|
22
22
|
attr_accessor :id, :value, :aggregated_value, :module_result_id, :metric_configuration_id
|
23
|
+
attr_reader :metric_configuration
|
23
24
|
|
24
|
-
def initialize(attributes={})
|
25
|
+
def initialize(attributes={}, persisted=false)
|
25
26
|
value = attributes["value"]
|
26
27
|
@value = (value == "NaN") ? attributes["aggregated_value"].to_f : value.to_f
|
27
28
|
attributes.each do |field, value|
|
@@ -30,25 +31,22 @@ module KalibroClient
|
|
30
31
|
end
|
31
32
|
end
|
32
33
|
@kalibro_errors = []
|
34
|
+
@persisted = persisted
|
33
35
|
end
|
34
36
|
|
35
37
|
def id=(value)
|
36
38
|
@id = value.to_i
|
37
39
|
end
|
38
40
|
|
41
|
+
def metric_configuration_id=(value)
|
42
|
+
self.metric_configuration = KalibroClient::Entities::Configurations::MetricConfiguration.request(":id", {id: value.to_i}, :get)["metric_configuration"]
|
43
|
+
end
|
44
|
+
|
39
45
|
def metric_configuration=(value)
|
40
46
|
@metric_configuration = KalibroClient::Entities::Configurations::MetricConfiguration.to_object value
|
41
47
|
@metric_configuration_id = @metric_configuration.id
|
42
48
|
end
|
43
49
|
|
44
|
-
def metric_configuration
|
45
|
-
unless @metric_configuration.nil?
|
46
|
-
return @metric_configuration
|
47
|
-
end
|
48
|
-
@metric_configuration = KalibroClient::Entities::Configurations::MetricConfiguration.find @metric_configuration_id
|
49
|
-
return @metric_configuration
|
50
|
-
end
|
51
|
-
|
52
50
|
def value=(value)
|
53
51
|
@value = value.to_f
|
54
52
|
end
|
@@ -63,7 +61,8 @@ module KalibroClient
|
|
63
61
|
end
|
64
62
|
|
65
63
|
def self.metric_results_of(module_result_id)
|
66
|
-
|
64
|
+
puts "DEPRECATED: MetricResult.metric_results_of"
|
65
|
+
KalibroClient::Entities::Processor::ModuleResult.find(module_result_id).metric_results
|
67
66
|
end
|
68
67
|
|
69
68
|
def self.history_of(metric_name, kalibro_module_id, repository_id)
|
@@ -51,6 +51,10 @@ module KalibroClient
|
|
51
51
|
@processing_id = value.to_i
|
52
52
|
end
|
53
53
|
|
54
|
+
def processing
|
55
|
+
KalibroClient::Entities::Processor::Processing.find(self.processing_id)
|
56
|
+
end
|
57
|
+
|
54
58
|
def grade=(value)
|
55
59
|
@grade = value.to_f
|
56
60
|
end
|
@@ -67,8 +71,8 @@ module KalibroClient
|
|
67
71
|
!self.folder?
|
68
72
|
end
|
69
73
|
|
70
|
-
def self.history_of(
|
71
|
-
response = self.create_array_from_hash(
|
74
|
+
def self.history_of(module_result, repository_id)
|
75
|
+
response = self.create_array_from_hash(Repository.request(':id/module_result_history_of', {id: repository_id, kalibro_module_id: module_result.kalibro_module.id})['date_module_results'])
|
72
76
|
response.map do |date_module_result_pair|
|
73
77
|
date_module_result = KalibroClient::Entities::Miscellaneous::DateModuleResult.new
|
74
78
|
date_module_result.date = date_module_result_pair.first
|
@@ -76,6 +80,10 @@ module KalibroClient
|
|
76
80
|
date_module_result
|
77
81
|
end
|
78
82
|
end
|
83
|
+
|
84
|
+
def metric_results
|
85
|
+
MetricResult.create_objects_array_from_hash self.class.request(":id/metric_results", {id: self.id}, :get)
|
86
|
+
end
|
79
87
|
end
|
80
88
|
end
|
81
89
|
end
|
@@ -65,43 +65,59 @@ module KalibroClient
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def self.has_processing(repository_id)
|
68
|
-
|
68
|
+
puts "DEPRECATED: Processing.has_processing"
|
69
|
+
repository(repository_id).has_processing
|
69
70
|
end
|
70
71
|
|
71
72
|
def self.has_ready_processing(repository_id)
|
72
|
-
|
73
|
+
puts "DEPRECATED: Processing.has_ready_processing"
|
74
|
+
repository(repository_id).has_ready_processing
|
73
75
|
end
|
74
76
|
|
75
77
|
def self.has_processing_after(repository_id, date)
|
76
|
-
|
78
|
+
puts "DEPRECATED: Processing.has_processing_after"
|
79
|
+
repository(repository_id).has_processing_after(date)
|
77
80
|
end
|
78
81
|
|
79
82
|
def self.has_processing_before(repository_id, date)
|
80
|
-
|
83
|
+
puts "DEPRECATED: Processing.has_processing_before"
|
84
|
+
repository(repository_id).has_processing_before(date)
|
81
85
|
end
|
82
86
|
|
83
87
|
def self.last_processing_state_of(repository_id)
|
84
|
-
|
88
|
+
puts "DEPRECATED: Processing.last_processing_state_of"
|
89
|
+
repository(repository_id).last_processing_state
|
85
90
|
end
|
86
91
|
|
87
92
|
def self.last_ready_processing_of(repository_id)
|
88
|
-
|
93
|
+
puts "DEPRECATED: Processing.last_ready_processing_of"
|
94
|
+
repository(repository_id).last_ready_processing
|
89
95
|
end
|
90
96
|
|
91
97
|
def self.first_processing_of(repository_id)
|
92
|
-
|
98
|
+
puts "DEPRECATED: Processing.first_processing_of"
|
99
|
+
repository(repository_id).first_processing
|
93
100
|
end
|
94
101
|
|
95
102
|
def self.last_processing_of(repository_id)
|
96
|
-
|
103
|
+
puts "DEPRECATED: Processing.last_processing_of"
|
104
|
+
repository(repository_id).last_processing
|
97
105
|
end
|
98
106
|
|
99
107
|
def self.first_processing_after(repository_id, date)
|
100
|
-
|
108
|
+
puts "DEPRECATED: Processing.first_processing_after"
|
109
|
+
repository(repository_id).first_processing_after(date)
|
101
110
|
end
|
102
111
|
|
103
112
|
def self.last_processing_before(repository_id, date)
|
104
|
-
|
113
|
+
puts "DEPRECATED: Processing.last_processing_before"
|
114
|
+
repository(repository_id).last_processing_before(date)
|
115
|
+
end
|
116
|
+
|
117
|
+
private
|
118
|
+
|
119
|
+
def self.repository(id)
|
120
|
+
Repository.find(id)
|
105
121
|
end
|
106
122
|
end
|
107
123
|
end
|
@@ -19,7 +19,7 @@ module KalibroClient
|
|
19
19
|
module Processor
|
20
20
|
class Repository < KalibroClient::Entities::Processor::Base
|
21
21
|
|
22
|
-
attr_accessor :id, :name, :description, :license, :period, :scm_type, :address, :
|
22
|
+
attr_accessor :id, :name, :description, :license, :period, :scm_type, :address, :kalibro_configuration_id, :project_id, :send_email, :code_directory
|
23
23
|
|
24
24
|
def self.repository_types
|
25
25
|
request('types', {}, :get)['types'].to_a
|
@@ -37,8 +37,8 @@ module KalibroClient
|
|
37
37
|
@period = value.to_i
|
38
38
|
end
|
39
39
|
|
40
|
-
def
|
41
|
-
@
|
40
|
+
def kalibro_configuration_id=(value)
|
41
|
+
@kalibro_configuration_id = value.to_i
|
42
42
|
end
|
43
43
|
|
44
44
|
def project_id=(value)
|
@@ -50,7 +50,66 @@ module KalibroClient
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def cancel_processing_of_repository
|
53
|
-
self.class.request('cancel_process', {id: self.id})
|
53
|
+
self.class.request(':id/cancel_process', {id: self.id}, :get)
|
54
|
+
end
|
55
|
+
|
56
|
+
def processing
|
57
|
+
if has_ready_processing
|
58
|
+
last_ready_processing
|
59
|
+
else
|
60
|
+
last_processing
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def processing_with_date(date)
|
65
|
+
date = date.is_a?(String) ? DateTime.parse(date) : date
|
66
|
+
if has_processing_after(date)
|
67
|
+
first_processing_after(date)
|
68
|
+
elsif has_processing_before(date)
|
69
|
+
last_processing_before(date)
|
70
|
+
else
|
71
|
+
nil
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def has_processing
|
76
|
+
self.class.request("#{self.id}/has_processing", {}, :get)['has_processing']
|
77
|
+
end
|
78
|
+
|
79
|
+
def has_ready_processing
|
80
|
+
self.class.request("#{self.id}/has_ready_processing", {}, :get)['has_ready_processing']
|
81
|
+
end
|
82
|
+
|
83
|
+
def has_processing_after(date)
|
84
|
+
self.class.request("#{self.id}/has_processing/after", {:date => date})['has_processing_in_time']
|
85
|
+
end
|
86
|
+
|
87
|
+
def has_processing_before(date)
|
88
|
+
self.class.request("#{self.id}/has_processing/before", {:date => date})['has_processing_in_time']
|
89
|
+
end
|
90
|
+
|
91
|
+
def last_processing_state
|
92
|
+
self.class.request("#{self.id}/last_processing_state", {}, :get)['processing_state']
|
93
|
+
end
|
94
|
+
|
95
|
+
def last_ready_processing
|
96
|
+
Processing.new(self.class.request(':id/last_ready_processing', {id: self.id}, :get)['last_ready_processing'])
|
97
|
+
end
|
98
|
+
|
99
|
+
def first_processing
|
100
|
+
Processing.new(self.class.request("#{self.id}/first_processing")['processing'])
|
101
|
+
end
|
102
|
+
|
103
|
+
def last_processing
|
104
|
+
Processing.new(self.class.request("#{self.id}/last_processing")['processing'])
|
105
|
+
end
|
106
|
+
|
107
|
+
def first_processing_after(date)
|
108
|
+
Processing.new(self.class.request("#{self.id}/first_processing/after", {:date => date})["processing"])
|
109
|
+
end
|
110
|
+
|
111
|
+
def last_processing_before(date)
|
112
|
+
Processing.new(self.class.request("#{self.id}/last_processing/before", {:date => date})['processing'])
|
54
113
|
end
|
55
114
|
|
56
115
|
def self.all
|
@@ -30,6 +30,7 @@ module RequestMethods
|
|
30
30
|
def destroy_action
|
31
31
|
":id"
|
32
32
|
end
|
33
|
+
alias_method :update_action, :destroy_action
|
33
34
|
|
34
35
|
def destroy_params
|
35
36
|
{id: self.id}
|
@@ -39,6 +40,14 @@ module RequestMethods
|
|
39
40
|
""
|
40
41
|
end
|
41
42
|
|
43
|
+
def update_params
|
44
|
+
{instance_class_name.underscore.to_sym => self.to_hash, :id => self.id}
|
45
|
+
end
|
46
|
+
|
47
|
+
def update_prefix
|
48
|
+
""
|
49
|
+
end
|
50
|
+
|
42
51
|
module ClassMethods
|
43
52
|
def exists_action
|
44
53
|
":id/exists"
|