techcor 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/Gemfile +22 -0
  2. data/Gemfile.lock +96 -0
  3. data/README.md +27 -0
  4. data/Rakefile +45 -0
  5. data/bin/tc +6 -0
  6. data/config/cucumber.yml +2 -0
  7. data/config/mongoid.yml +29 -0
  8. data/config/mongoid.yml.sample +29 -0
  9. data/db/seed.rb +37 -0
  10. data/features/add_metric.feature +9 -0
  11. data/features/add_project.feature +9 -0
  12. data/features/console_interface.feature +58 -0
  13. data/features/describe_project.feature +25 -0
  14. data/features/edit_property.feature +9 -0
  15. data/features/list_projects.feature +69 -0
  16. data/features/property_history.feature +51 -0
  17. data/features/rake.feature +11 -0
  18. data/features/seeds.feature +9 -0
  19. data/features/step_definitions/add_project.rb +22 -0
  20. data/features/step_definitions/console_interface.rb +7 -0
  21. data/features/step_definitions/list_projects.rb +3 -0
  22. data/features/step_definitions/property_history.rb +4 -0
  23. data/features/step_definitions/rake.rb +3 -0
  24. data/features/support/env.rb +9 -0
  25. data/lib/commands/add_metric.rb +17 -0
  26. data/lib/commands/add_project.rb +5 -0
  27. data/lib/commands/describe_project.rb +26 -0
  28. data/lib/commands/edit_property.rb +9 -0
  29. data/lib/commands/gli/add.rb +12 -0
  30. data/lib/commands/gli/add_metric.rb +23 -0
  31. data/lib/commands/gli/describe.rb +16 -0
  32. data/lib/commands/gli/edit_property.rb +22 -0
  33. data/lib/commands/gli/history.rb +19 -0
  34. data/lib/commands/gli/hooks.rb +8 -0
  35. data/lib/commands/gli/list.rb +14 -0
  36. data/lib/commands/gli/program.rb +5 -0
  37. data/lib/commands/list_projects.rb +32 -0
  38. data/lib/commands/view_history.rb +37 -0
  39. data/lib/console_formatter.rb +18 -0
  40. data/lib/gli_interface.rb +15 -0
  41. data/lib/metrics/boolean_metric.rb +7 -0
  42. data/lib/metrics/metric.rb +24 -0
  43. data/lib/metrics/number_metric.rb +7 -0
  44. data/lib/metrics/string_metric.rb +7 -0
  45. data/lib/project.rb +15 -0
  46. data/lib/project_catalog.rb +34 -0
  47. data/lib/property_value.rb +3 -0
  48. data/lib/storage/metric_mongo.rb +11 -0
  49. data/lib/storage/project_mongo.rb +9 -0
  50. data/lib/storage/property_value_mongo.rb +10 -0
  51. data/lib/tc/version.rb +9 -0
  52. data/lib/tc.rb +27 -0
  53. data/spec/integration/mongo_spec.rb +19 -0
  54. data/spec/lib/commands/add_metric_spec.rb +31 -0
  55. data/spec/lib/commands/add_project_spec.rb +10 -0
  56. data/spec/lib/commands/describe_project_spec.rb +42 -0
  57. data/spec/lib/commands/edit_property_spec.rb +19 -0
  58. data/spec/lib/commands/list_projects_spec.rb +47 -0
  59. data/spec/lib/commands/view_history_spec.rb +64 -0
  60. data/spec/lib/console_formatter_spec.rb +29 -0
  61. data/spec/lib/metrics/boolean_metric_spec.rb +9 -0
  62. data/spec/lib/metrics/metric_spec.rb +26 -0
  63. data/spec/lib/metrics/number_metric_spec.rb +8 -0
  64. data/spec/lib/metrics/string_metric_spec.rb +7 -0
  65. data/spec/lib/project_catalog_spec.rb +23 -0
  66. data/spec/lib/project_spec.rb +45 -0
  67. data/spec/lib/storage/metric_mongo_spec.rb +12 -0
  68. data/spec/lib/storage/project_mongo_spec.rb +11 -0
  69. data/spec/lib/storage/property_value_mongo_spec.rb +11 -0
  70. data/spec/spec_helper.rb +8 -0
  71. metadata +313 -0
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe ViewHistory do
4
+ it 'presents properties to table view' do
5
+ result = stub(:result)
6
+
7
+ records = stub(:records)
8
+ formatter = stub(:formatter).tap { |f| f.should_receive(:present).with(records) { result } }
9
+
10
+ subject.call(formatter, records).should == result
11
+ end
12
+
13
+ it 'does not present unknown properties' do
14
+ formatter = stub(:formatter).tap { |f| f.should_receive(:present).with([]) }
15
+ project = stub(:project).tap { |p| p.should_receive(:property) { nil } }
16
+ subject.stub(:project => project)
17
+ subject.stub(:properties => ['Unknown Property'])
18
+
19
+ subject.call(formatter)
20
+ end
21
+
22
+ it 'passes format to console formatter' do
23
+ format = stub(:format)
24
+ ConsoleFormatter.should_receive(:new).with(format)
25
+
26
+ subject.formatter(format)
27
+ end
28
+
29
+ it 'collects values from metrics' do
30
+ metrics = [stub(:metric, :values => [1, 2]), stub(:metric, :values => [3])]
31
+
32
+ subject.records(metrics).should == [1, 2, 3]
33
+ end
34
+
35
+ it 'collects metrics from project' do
36
+ project = stub(:project)
37
+ metric1, metric2 = stub(:metric), stub(:metric)
38
+ project.should_receive(:property).with('metric1') { metric1 }
39
+ project.should_receive(:property).with('metric2') { metric2 }
40
+ subject.metrics(project, %w(metric1 metric2)).should == [metric1, metric2]
41
+ end
42
+
43
+ it 'constructs format for console formatter' do
44
+ metrics = [stub(:name => "name1"), stub(:name => "name2")]
45
+ subject.format("DATE_FORMAT", metrics).should == {
46
+ 'Date' => "created_at.strftime('DATE_FORMAT')",
47
+ 'name1' => "metric.name == 'name1' ? value : ''",
48
+ 'name2' => "metric.name == 'name2' ? value : ''"
49
+ }
50
+ end
51
+
52
+ it 'finds project by its name' do
53
+ name, result = stub(:name), stub(:result)
54
+ Project.should_receive(:find_by).with(name: name) { result }
55
+
56
+ subject.project(name).should == result
57
+ end
58
+
59
+ it 'lists all properties is none was specified directly' do
60
+ project = stub(:project, :metrics => [stub(:metric, :name => 'name1'), stub(:metric, :name => 'name2')])
61
+ subject.properties(project).should == %w(name1 name2)
62
+ end
63
+
64
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe ConsoleFormatter do
4
+ it 'renders prepared records with help of Hirb library' do
5
+ format = stub(:format, :keys => stub(:format_keys))
6
+ records = stub(:records)
7
+
8
+ subject.stub(:render_each => records)
9
+
10
+ Hirb::Helpers::AutoTable.should_receive(:render).with(records, fields: format.keys, resize: false)
11
+
12
+ subject.present(records, format)
13
+ end
14
+
15
+ it 'renders each record in collection' do
16
+ record = stub(:record)
17
+
18
+ subject.should_receive(:render_record).with(record).twice
19
+ subject.render_each([record, record])
20
+ end
21
+
22
+ it 'uses expressions in format to render each record' do
23
+ expression = stub(:expression)
24
+ format = {stub(:key) => expression}
25
+ record = stub(:record).tap { |p| p.should_receive(:instance_eval).with(expression) }
26
+
27
+ subject.render_record record, format
28
+ end
29
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe BooleanMetric do
4
+ specify { subject.convert(1).should == true }
5
+ specify { subject.convert('abc').should == true }
6
+ specify { subject.convert({}).should == true }
7
+ specify { subject.convert(false).should == false }
8
+ specify { subject.convert(nil).should == false }
9
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Metric do
4
+ specify { subject.convert('1').should eq '1' }
5
+ specify { subject.convert('1abc').should eq '1abc' }
6
+ specify { subject.convert(1.2).should eq 1.2 }
7
+ specify { subject.convert({}).should eq({}) }
8
+
9
+ it 'returns last value' do
10
+ value = stub(:value)
11
+ subject.stub(:values => [stub, stub, stub(:last_value, :value => value)])
12
+ subject.value.should == value
13
+ end
14
+
15
+ it 'returns last updater' do
16
+ user = stub(:user)
17
+ subject.stub(:values => [stub, stub, stub(:last_value, :created_by => user)])
18
+ subject.last_updated_by.should == user
19
+ end
20
+
21
+ it 'returns last update date' do
22
+ date = stub(:date)
23
+ subject.stub(:values => [stub, stub, stub(:last_value, :created_at => date)])
24
+ subject.last_updated_at.should == date
25
+ end
26
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe NumberMetric do
4
+ specify { subject.convert('1').should == 1 }
5
+ specify { subject.convert('1abc').should == 1 }
6
+ specify { subject.convert(1.2).should == 1.2 }
7
+ specify { subject.convert('abc').should == 0 }
8
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe StringMetric do
4
+ specify { subject.convert(1).should == '1' }
5
+ specify { subject.convert('1abc').should == '1abc' }
6
+ specify { subject.convert(1.2).should == '1.2' }
7
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe ProjectCatalog do
4
+
5
+ subject {
6
+ ProjectCatalog.new.
7
+ add_project(Project.new(name: '1').add_metric(NumberMetric.new(name: 'length')).edit_property('length', 3, stub)).
8
+ add_project(Project.new(name: '3').add_metric(NumberMetric.new(name: 'length')).edit_property('length', 2, stub)).
9
+ add_project(Project.new(name: '2').add_metric(NumberMetric.new(name: 'length')).edit_property('length', 1, stub))
10
+ }
11
+
12
+ it 'searches projects by simple criteria' do
13
+ subject.projects('property("length").value >= 2').should have_exactly(2).items
14
+ end
15
+
16
+ it 'searches projects by complex criteria' do
17
+ subject.projects('property("length").value == 2 || property("length").value == 3').should have_exactly(2).items
18
+ end
19
+
20
+ it 'orders projects by name' do
21
+ subject.projects.collect(&:name).should == %w(1 2 3)
22
+ end
23
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Project do
4
+
5
+ describe 'metrics' do
6
+ it 'describes itself' do
7
+ subject.
8
+ add_metric(Metric.new(:name => stub)).
9
+ add_metric(Metric.new(:name => stub))
10
+
11
+ subject.metrics.should have(2).items
12
+ end
13
+ end
14
+
15
+ describe 'properties' do
16
+ context 'with one metric' do
17
+ let(:name) { stub(:name) }
18
+ let(:metric) { Metric.new(name: name) }
19
+ before { subject.add_metric(metric) }
20
+
21
+ it 'converts value before addition' do
22
+ value = stub
23
+ metric.should_receive(:convert).with(value)
24
+ subject.edit_property(name, value, stub)
25
+ end
26
+
27
+ it 'returns last value of the property history' do
28
+ value = 'v'
29
+ subject.edit_property(name, stub, stub).edit_property(name, value, stub)
30
+ subject.property(name).value.should be value
31
+ end
32
+ end
33
+
34
+ describe 'exceptional cases' do
35
+ it 'do not allow to modify unknown property' do
36
+ name, value = stub, stub
37
+ expect { subject.edit_property(name, value) }.to raise_error
38
+ end
39
+
40
+ it 'returns nil for unknown property' do
41
+ subject.property(stub).should be_nil
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Metric do
4
+ it { should be_mongoid_document }
5
+ it { should be_timestamped_document }
6
+
7
+ it { should have_field(:name) }
8
+ it { should be_embedded_in(:project) }
9
+ it { should embed_many(:values).of_type(PropertyValue) }
10
+
11
+ it { should validate_uniqueness_of(:name) }
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Project do
4
+ it { should be_mongoid_document }
5
+ it { should be_timestamped_document }
6
+
7
+ it { should have_field(:name) }
8
+ it { should embed_many(:metrics) }
9
+
10
+ it { should validate_uniqueness_of(:name) }
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe PropertyValue do
4
+ it { should be_mongoid_document }
5
+ it { should be_timestamped_document }
6
+
7
+ it { should have_field(:value) }
8
+ it { should have_field(:created_by) }
9
+ it { should validate_presence_of(:created_by) }
10
+ it { should be_embedded_in(:metric) }
11
+ end
@@ -0,0 +1,8 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'mongoid-rspec'
4
+ RSpec.configure do |configuration|
5
+ configuration.include Mongoid::Matchers
6
+ end
7
+
8
+ require_relative '../lib/tc'
metadata ADDED
@@ -0,0 +1,313 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: techcor
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alexander Shestakov
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: mongoid
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 3.0.0.rc
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 3.0.0.rc
46
+ - !ruby/object:Gem::Dependency
47
+ name: bson_ext
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: hirb
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: gli
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 2.0.0.rc
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 2.0.0.rc
94
+ - !ruby/object:Gem::Dependency
95
+ name: pry
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: jeweler
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: mongoid
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 3.0.0.rc
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 3.0.0.rc
158
+ - !ruby/object:Gem::Dependency
159
+ name: bson_ext
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: hirb
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: gli
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: 2.0.0.rc
198
+ type: :runtime
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: 2.0.0.rc
206
+ description: This gem provides 'tc' console utility, which allows to collect and manage
207
+ different metrics on software projects.
208
+ email: Maksar.mail@gmail.com
209
+ executables:
210
+ - tc
211
+ extensions: []
212
+ extra_rdoc_files:
213
+ - README.md
214
+ files:
215
+ - Gemfile
216
+ - Gemfile.lock
217
+ - README.md
218
+ - Rakefile
219
+ - bin/tc
220
+ - config/cucumber.yml
221
+ - config/mongoid.yml
222
+ - config/mongoid.yml.sample
223
+ - db/seed.rb
224
+ - features/add_metric.feature
225
+ - features/add_project.feature
226
+ - features/console_interface.feature
227
+ - features/describe_project.feature
228
+ - features/edit_property.feature
229
+ - features/list_projects.feature
230
+ - features/property_history.feature
231
+ - features/rake.feature
232
+ - features/seeds.feature
233
+ - features/step_definitions/add_project.rb
234
+ - features/step_definitions/console_interface.rb
235
+ - features/step_definitions/list_projects.rb
236
+ - features/step_definitions/property_history.rb
237
+ - features/step_definitions/rake.rb
238
+ - features/support/env.rb
239
+ - lib/commands/add_metric.rb
240
+ - lib/commands/add_project.rb
241
+ - lib/commands/describe_project.rb
242
+ - lib/commands/edit_property.rb
243
+ - lib/commands/gli/add.rb
244
+ - lib/commands/gli/add_metric.rb
245
+ - lib/commands/gli/describe.rb
246
+ - lib/commands/gli/edit_property.rb
247
+ - lib/commands/gli/history.rb
248
+ - lib/commands/gli/hooks.rb
249
+ - lib/commands/gli/list.rb
250
+ - lib/commands/gli/program.rb
251
+ - lib/commands/list_projects.rb
252
+ - lib/commands/view_history.rb
253
+ - lib/console_formatter.rb
254
+ - lib/gli_interface.rb
255
+ - lib/metrics/boolean_metric.rb
256
+ - lib/metrics/metric.rb
257
+ - lib/metrics/number_metric.rb
258
+ - lib/metrics/string_metric.rb
259
+ - lib/project.rb
260
+ - lib/project_catalog.rb
261
+ - lib/property_value.rb
262
+ - lib/storage/metric_mongo.rb
263
+ - lib/storage/project_mongo.rb
264
+ - lib/storage/property_value_mongo.rb
265
+ - lib/tc.rb
266
+ - lib/tc/version.rb
267
+ - spec/integration/mongo_spec.rb
268
+ - spec/lib/commands/add_metric_spec.rb
269
+ - spec/lib/commands/add_project_spec.rb
270
+ - spec/lib/commands/describe_project_spec.rb
271
+ - spec/lib/commands/edit_property_spec.rb
272
+ - spec/lib/commands/list_projects_spec.rb
273
+ - spec/lib/commands/view_history_spec.rb
274
+ - spec/lib/console_formatter_spec.rb
275
+ - spec/lib/metrics/boolean_metric_spec.rb
276
+ - spec/lib/metrics/metric_spec.rb
277
+ - spec/lib/metrics/number_metric_spec.rb
278
+ - spec/lib/metrics/string_metric_spec.rb
279
+ - spec/lib/project_catalog_spec.rb
280
+ - spec/lib/project_spec.rb
281
+ - spec/lib/storage/metric_mongo_spec.rb
282
+ - spec/lib/storage/project_mongo_spec.rb
283
+ - spec/lib/storage/property_value_mongo_spec.rb
284
+ - spec/spec_helper.rb
285
+ homepage: http://github.com/maksar/tc
286
+ licenses:
287
+ - MIT
288
+ post_install_message:
289
+ rdoc_options: []
290
+ require_paths:
291
+ - lib
292
+ required_ruby_version: !ruby/object:Gem::Requirement
293
+ none: false
294
+ requirements:
295
+ - - ! '>='
296
+ - !ruby/object:Gem::Version
297
+ version: '0'
298
+ segments:
299
+ - 0
300
+ hash: 4427700791790727002
301
+ required_rubygems_version: !ruby/object:Gem::Requirement
302
+ none: false
303
+ requirements:
304
+ - - ! '>='
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
307
+ requirements: []
308
+ rubyforge_project:
309
+ rubygems_version: 1.8.24
310
+ signing_key:
311
+ specification_version: 3
312
+ summary: Console tool allowing to perform technical coordination activities
313
+ test_files: []