rubinius-grapher 0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 99f95072b7050aa3850b13fad838d89a71dfd727
4
+ data.tar.gz: e6f5179bc5aa76ac35158b0d22f2192cf8161e8a
5
+ SHA512:
6
+ metadata.gz: 69ccb0337e294c2dd823ae2084e8c66ca32bc5b02c448794e948c4bc22a659ca5ecce538b1c1e3893029424fd81edeef9a7127951638c14df260342164c96882
7
+ data.tar.gz: 309efad840711ee7049c6dbfcc28a6fcafd1da0a47b8f2354db98fb3fe346c74e6e61da407b16a25b42ba6dac4b6c747d86fcd38def76e84812f0d376fa02b1d
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rubinius-grapher.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,364 @@
1
+ Copyright (c) 2016, Rubinius, Inc.
2
+
3
+ Mozilla Public License, version 2.0
4
+
5
+ 1. Definitions
6
+
7
+ 1.1. "Contributor"
8
+
9
+ means each individual or legal entity that creates, contributes to the
10
+ creation of, or owns Covered Software.
11
+
12
+ 1.2. "Contributor Version"
13
+
14
+ means the combination of the Contributions of others (if any) used by a
15
+ Contributor and that particular Contributor's Contribution.
16
+
17
+ 1.3. "Contribution"
18
+
19
+ means Covered Software of a particular Contributor.
20
+
21
+ 1.4. "Covered Software"
22
+
23
+ means Source Code Form to which the initial Contributor has attached the
24
+ notice in Exhibit A, the Executable Form of such Source Code Form, and
25
+ Modifications of such Source Code Form, in each case including portions
26
+ thereof.
27
+
28
+ 1.5. "Incompatible With Secondary Licenses"
29
+ means
30
+
31
+ a. that the initial Contributor has attached the notice described in
32
+ Exhibit B to the Covered Software; or
33
+
34
+ b. that the Covered Software was made available under the terms of
35
+ version 1.1 or earlier of the License, but not also under the terms of
36
+ a Secondary License.
37
+
38
+ 1.6. "Executable Form"
39
+
40
+ means any form of the work other than Source Code Form.
41
+
42
+ 1.7. "Larger Work"
43
+
44
+ means a work that combines Covered Software with other material, in a
45
+ separate file or files, that is not Covered Software.
46
+
47
+ 1.8. "License"
48
+
49
+ means this document.
50
+
51
+ 1.9. "Licensable"
52
+
53
+ means having the right to grant, to the maximum extent possible, whether
54
+ at the time of the initial grant or subsequently, any and all of the
55
+ rights conveyed by this License.
56
+
57
+ 1.10. "Modifications"
58
+
59
+ means any of the following:
60
+
61
+ a. any file in Source Code Form that results from an addition to,
62
+ deletion from, or modification of the contents of Covered Software; or
63
+
64
+ b. any new file in Source Code Form that contains any Covered Software.
65
+
66
+ 1.11. "Patent Claims" of a Contributor
67
+
68
+ means any patent claim(s), including without limitation, method,
69
+ process, and apparatus claims, in any patent Licensable by such
70
+ Contributor that would be infringed, but for the grant of the License,
71
+ by the making, using, selling, offering for sale, having made, import,
72
+ or transfer of either its Contributions or its Contributor Version.
73
+
74
+ 1.12. "Secondary License"
75
+
76
+ means either the GNU General Public License, Version 2.0, the GNU Lesser
77
+ General Public License, Version 2.1, the GNU Affero General Public
78
+ License, Version 3.0, or any later versions of those licenses.
79
+
80
+ 1.13. "Source Code Form"
81
+
82
+ means the form of the work preferred for making modifications.
83
+
84
+ 1.14. "You" (or "Your")
85
+
86
+ means an individual or a legal entity exercising rights under this
87
+ License. For legal entities, "You" includes any entity that controls, is
88
+ controlled by, or is under common control with You. For purposes of this
89
+ definition, "control" means (a) the power, direct or indirect, to cause
90
+ the direction or management of such entity, whether by contract or
91
+ otherwise, or (b) ownership of more than fifty percent (50%) of the
92
+ outstanding shares or beneficial ownership of such entity.
93
+
94
+
95
+ 2. License Grants and Conditions
96
+
97
+ 2.1. Grants
98
+
99
+ Each Contributor hereby grants You a world-wide, royalty-free,
100
+ non-exclusive license:
101
+
102
+ a. under intellectual property rights (other than patent or trademark)
103
+ Licensable by such Contributor to use, reproduce, make available,
104
+ modify, display, perform, distribute, and otherwise exploit its
105
+ Contributions, either on an unmodified basis, with Modifications, or
106
+ as part of a Larger Work; and
107
+
108
+ b. under Patent Claims of such Contributor to make, use, sell, offer for
109
+ sale, have made, import, and otherwise transfer either its
110
+ Contributions or its Contributor Version.
111
+
112
+ 2.2. Effective Date
113
+
114
+ The licenses granted in Section 2.1 with respect to any Contribution
115
+ become effective for each Contribution on the date the Contributor first
116
+ distributes such Contribution.
117
+
118
+ 2.3. Limitations on Grant Scope
119
+
120
+ The licenses granted in this Section 2 are the only rights granted under
121
+ this License. No additional rights or licenses will be implied from the
122
+ distribution or licensing of Covered Software under this License.
123
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
124
+ Contributor:
125
+
126
+ a. for any code that a Contributor has removed from Covered Software; or
127
+
128
+ b. for infringements caused by: (i) Your and any other third party's
129
+ modifications of Covered Software, or (ii) the combination of its
130
+ Contributions with other software (except as part of its Contributor
131
+ Version); or
132
+
133
+ c. under Patent Claims infringed by Covered Software in the absence of
134
+ its Contributions.
135
+
136
+ This License does not grant any rights in the trademarks, service marks,
137
+ or logos of any Contributor (except as may be necessary to comply with
138
+ the notice requirements in Section 3.4).
139
+
140
+ 2.4. Subsequent Licenses
141
+
142
+ No Contributor makes additional grants as a result of Your choice to
143
+ distribute the Covered Software under a subsequent version of this
144
+ License (see Section 10.2) or under the terms of a Secondary License (if
145
+ permitted under the terms of Section 3.3).
146
+
147
+ 2.5. Representation
148
+
149
+ Each Contributor represents that the Contributor believes its
150
+ Contributions are its original creation(s) or it has sufficient rights to
151
+ grant the rights to its Contributions conveyed by this License.
152
+
153
+ 2.6. Fair Use
154
+
155
+ This License is not intended to limit any rights You have under
156
+ applicable copyright doctrines of fair use, fair dealing, or other
157
+ equivalents.
158
+
159
+ 2.7. Conditions
160
+
161
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
162
+ Section 2.1.
163
+
164
+
165
+ 3. Responsibilities
166
+
167
+ 3.1. Distribution of Source Form
168
+
169
+ All distribution of Covered Software in Source Code Form, including any
170
+ Modifications that You create or to which You contribute, must be under
171
+ the terms of this License. You must inform recipients that the Source
172
+ Code Form of the Covered Software is governed by the terms of this
173
+ License, and how they can obtain a copy of this License. You may not
174
+ attempt to alter or restrict the recipients' rights in the Source Code
175
+ Form.
176
+
177
+ 3.2. Distribution of Executable Form
178
+
179
+ If You distribute Covered Software in Executable Form then:
180
+
181
+ a. such Covered Software must also be made available in Source Code Form,
182
+ as described in Section 3.1, and You must inform recipients of the
183
+ Executable Form how they can obtain a copy of such Source Code Form by
184
+ reasonable means in a timely manner, at a charge no more than the cost
185
+ of distribution to the recipient; and
186
+
187
+ b. You may distribute such Executable Form under the terms of this
188
+ License, or sublicense it under different terms, provided that the
189
+ license for the Executable Form does not attempt to limit or alter the
190
+ recipients' rights in the Source Code Form under this License.
191
+
192
+ 3.3. Distribution of a Larger Work
193
+
194
+ You may create and distribute a Larger Work under terms of Your choice,
195
+ provided that You also comply with the requirements of this License for
196
+ the Covered Software. If the Larger Work is a combination of Covered
197
+ Software with a work governed by one or more Secondary Licenses, and the
198
+ Covered Software is not Incompatible With Secondary Licenses, this
199
+ License permits You to additionally distribute such Covered Software
200
+ under the terms of such Secondary License(s), so that the recipient of
201
+ the Larger Work may, at their option, further distribute the Covered
202
+ Software under the terms of either this License or such Secondary
203
+ License(s).
204
+
205
+ 3.4. Notices
206
+
207
+ You may not remove or alter the substance of any license notices
208
+ (including copyright notices, patent notices, disclaimers of warranty, or
209
+ limitations of liability) contained within the Source Code Form of the
210
+ Covered Software, except that You may alter any license notices to the
211
+ extent required to remedy known factual inaccuracies.
212
+
213
+ 3.5. Application of Additional Terms
214
+
215
+ You may choose to offer, and to charge a fee for, warranty, support,
216
+ indemnity or liability obligations to one or more recipients of Covered
217
+ Software. However, You may do so only on Your own behalf, and not on
218
+ behalf of any Contributor. You must make it absolutely clear that any
219
+ such warranty, support, indemnity, or liability obligation is offered by
220
+ You alone, and You hereby agree to indemnify every Contributor for any
221
+ liability incurred by such Contributor as a result of warranty, support,
222
+ indemnity or liability terms You offer. You may include additional
223
+ disclaimers of warranty and limitations of liability specific to any
224
+ jurisdiction.
225
+
226
+ 4. Inability to Comply Due to Statute or Regulation
227
+
228
+ If it is impossible for You to comply with any of the terms of this License
229
+ with respect to some or all of the Covered Software due to statute,
230
+ judicial order, or regulation then You must: (a) comply with the terms of
231
+ this License to the maximum extent possible; and (b) describe the
232
+ limitations and the code they affect. Such description must be placed in a
233
+ text file included with all distributions of the Covered Software under
234
+ this License. Except to the extent prohibited by statute or regulation,
235
+ such description must be sufficiently detailed for a recipient of ordinary
236
+ skill to be able to understand it.
237
+
238
+ 5. Termination
239
+
240
+ 5.1. The rights granted under this License will terminate automatically if You
241
+ fail to comply with any of its terms. However, if You become compliant,
242
+ then the rights granted under this License from a particular Contributor
243
+ are reinstated (a) provisionally, unless and until such Contributor
244
+ explicitly and finally terminates Your grants, and (b) on an ongoing
245
+ basis, if such Contributor fails to notify You of the non-compliance by
246
+ some reasonable means prior to 60 days after You have come back into
247
+ compliance. Moreover, Your grants from a particular Contributor are
248
+ reinstated on an ongoing basis if such Contributor notifies You of the
249
+ non-compliance by some reasonable means, this is the first time You have
250
+ received notice of non-compliance with this License from such
251
+ Contributor, and You become compliant prior to 30 days after Your receipt
252
+ of the notice.
253
+
254
+ 5.2. If You initiate litigation against any entity by asserting a patent
255
+ infringement claim (excluding declaratory judgment actions,
256
+ counter-claims, and cross-claims) alleging that a Contributor Version
257
+ directly or indirectly infringes any patent, then the rights granted to
258
+ You by any and all Contributors for the Covered Software under Section
259
+ 2.1 of this License shall terminate.
260
+
261
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
262
+ license agreements (excluding distributors and resellers) which have been
263
+ validly granted by You or Your distributors under this License prior to
264
+ termination shall survive termination.
265
+
266
+ 6. Disclaimer of Warranty
267
+
268
+ Covered Software is provided under this License on an "as is" basis,
269
+ without warranty of any kind, either expressed, implied, or statutory,
270
+ including, without limitation, warranties that the Covered Software is free
271
+ of defects, merchantable, fit for a particular purpose or non-infringing.
272
+ The entire risk as to the quality and performance of the Covered Software
273
+ is with You. Should any Covered Software prove defective in any respect,
274
+ You (not any Contributor) assume the cost of any necessary servicing,
275
+ repair, or correction. This disclaimer of warranty constitutes an essential
276
+ part of this License. No use of any Covered Software is authorized under
277
+ this License except under this disclaimer.
278
+
279
+ 7. Limitation of Liability
280
+
281
+ Under no circumstances and under no legal theory, whether tort (including
282
+ negligence), contract, or otherwise, shall any Contributor, or anyone who
283
+ distributes Covered Software as permitted above, be liable to You for any
284
+ direct, indirect, special, incidental, or consequential damages of any
285
+ character including, without limitation, damages for lost profits, loss of
286
+ goodwill, work stoppage, computer failure or malfunction, or any and all
287
+ other commercial damages or losses, even if such party shall have been
288
+ informed of the possibility of such damages. This limitation of liability
289
+ shall not apply to liability for death or personal injury resulting from
290
+ such party's negligence to the extent applicable law prohibits such
291
+ limitation. Some jurisdictions do not allow the exclusion or limitation of
292
+ incidental or consequential damages, so this exclusion and limitation may
293
+ not apply to You.
294
+
295
+ 8. Litigation
296
+
297
+ Any litigation relating to this License may be brought only in the courts
298
+ of a jurisdiction where the defendant maintains its principal place of
299
+ business and such litigation shall be governed by laws of that
300
+ jurisdiction, without reference to its conflict-of-law provisions. Nothing
301
+ in this Section shall prevent a party's ability to bring cross-claims or
302
+ counter-claims.
303
+
304
+ 9. Miscellaneous
305
+
306
+ This License represents the complete agreement concerning the subject
307
+ matter hereof. If any provision of this License is held to be
308
+ unenforceable, such provision shall be reformed only to the extent
309
+ necessary to make it enforceable. Any law or regulation which provides that
310
+ the language of a contract shall be construed against the drafter shall not
311
+ be used to construe this License against a Contributor.
312
+
313
+
314
+ 10. Versions of the License
315
+
316
+ 10.1. New Versions
317
+
318
+ Mozilla Foundation is the license steward. Except as provided in Section
319
+ 10.3, no one other than the license steward has the right to modify or
320
+ publish new versions of this License. Each version will be given a
321
+ distinguishing version number.
322
+
323
+ 10.2. Effect of New Versions
324
+
325
+ You may distribute the Covered Software under the terms of the version
326
+ of the License under which You originally received the Covered Software,
327
+ or under the terms of any subsequent version published by the license
328
+ steward.
329
+
330
+ 10.3. Modified Versions
331
+
332
+ If you create software not governed by this License, and you want to
333
+ create a new license for such software, you may create and use a
334
+ modified version of this License if you rename the license and remove
335
+ any references to the name of the license steward (except to note that
336
+ such modified license differs from this License).
337
+
338
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
339
+ Licenses If You choose to distribute Source Code Form that is
340
+ Incompatible With Secondary Licenses under the terms of this version of
341
+ the License, the notice described in Exhibit B of this License must be
342
+ attached.
343
+
344
+ Exhibit A - Source Code Form License Notice
345
+
346
+ This Source Code Form is subject to the
347
+ terms of the Mozilla Public License, v.
348
+ 2.0. If a copy of the MPL was not
349
+ distributed with this file, You can
350
+ obtain one at
351
+ http://mozilla.org/MPL/2.0/.
352
+
353
+ If it is not possible or desirable to put the notice in a particular file,
354
+ then You may include the notice in a location (such as a LICENSE file in a
355
+ relevant directory) where a recipient would be likely to look for such a
356
+ notice.
357
+
358
+ You may add additional accurate notices of copyright ownership.
359
+
360
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
361
+
362
+ This Source Code Form is "Incompatible
363
+ With Secondary Licenses", as defined by
364
+ the Mozilla Public License, v. 2.0.
data/README.md ADDED
@@ -0,0 +1,18 @@
1
+ # Rubinius Grapher
2
+
3
+ Rubinius provides built-in performance metrics and also writes diagnostics data to a log. This tool can process logged diagnostics and metric data written to a file to produce various graphs.
4
+
5
+
6
+ ## Code of Conduct
7
+
8
+ Participation in this project is governed by the Rubinius [Code of Conduct](http://rubinius.com/code-of-conduct/).
9
+
10
+
11
+ ## Usage
12
+
13
+ $ rbx-grapher metrics.dat
14
+
15
+
16
+ ## License
17
+
18
+ © 2016 Brian Shirai. Licensed under the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/). See LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/rbx-grapher ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env rbx
2
+
3
+ $:.unshift File.expand_path("../lib", __dir__)
4
+
5
+ require "rubinius/grapher"
6
+
7
+ Rubinius::Grapher.graph
@@ -0,0 +1,101 @@
1
+ require "rubinius/grapher/version"
2
+
3
+ module Rubinius
4
+ module Grapher
5
+ class AsciiGraph
6
+ attr_reader :title
7
+
8
+ def initialize(x, y, title, data)
9
+ @x = x
10
+ @y = y
11
+ @title = title
12
+ @data = data
13
+ end
14
+
15
+ def plot
16
+ draw_axes
17
+ draw_title
18
+ draw_data
19
+
20
+ self
21
+ end
22
+
23
+ def canvas
24
+ @canvas ||= (@y).times.to_a.map { Array.new @x, " " }
25
+ end
26
+
27
+ def draw_axes
28
+ @x_axis = @y - 2
29
+ @y_axis = 4
30
+
31
+ (1..@y-3).each { |i| canvas[i][@y_axis] = "|" }
32
+ (2..@x-2).each { |i| canvas[@x_axis][i] = "-" }
33
+
34
+ canvas[@x_axis][@y_axis - 1] = "-"
35
+ canvas[@x_axis][@y_axis] = "+"
36
+ canvas[@x_axis + 1][@y_axis] = "|"
37
+ end
38
+
39
+ def draw_title
40
+ canvas[@y] = @title.center(@x).split("")
41
+ end
42
+
43
+ def draw_data
44
+ min = @data.min
45
+ max = @data.max
46
+
47
+ graph_width = @x - @x_axis - 3
48
+ width = @data.size
49
+
50
+ if width > graph_width
51
+ columns = (0..graph_width).to_a
52
+ else
53
+ r = width.to_f / graph_width
54
+ columns = Array.new(graph_width) { |i| (i * r).to_i }
55
+ end
56
+
57
+ graph_y = @y - 3
58
+ graph_height = @y - 5
59
+ height = max + 1 - min
60
+ r = graph_height.to_f / height
61
+
62
+ columns.each do |c|
63
+ y = graph_y - (@data[c] - min) * r
64
+ x = c + @y_axis + 2
65
+
66
+ @canvas[y][x] = "."
67
+ end
68
+ end
69
+
70
+ def to_s
71
+ canvas.map { |r| r.join << "\n" }.join
72
+ end
73
+ end
74
+
75
+ def self.graph
76
+ filename = ARGV.shift
77
+
78
+ contents = File.readlines filename
79
+ metrics = contents.shift.chomp.split ", "
80
+
81
+ rows = contents.map { |x| x.chomp.split.map { |n| n.to_i } }
82
+
83
+ data = { }
84
+
85
+ metrics.each_with_index do |m, i|
86
+ data[m] = rows.map { |r| r[i] }
87
+ end
88
+
89
+ width = Rubinius::TERMINAL_WIDTH
90
+ height = 12
91
+
92
+ graphs = data.map do |t, d|
93
+ AsciiGraph.new width, height, t, d
94
+ end
95
+
96
+ graphs.sort! { |a, b| a.title <=> b.title }
97
+
98
+ graphs.each { |g| puts g.plot.to_s }
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,5 @@
1
+ module Rubinius
2
+ module Grapher
3
+ VERSION = "0.1"
4
+ end
5
+ end
@@ -0,0 +1,22 @@
1
+ # coding: utf-8
2
+ require './lib/rubinius/grapher/version'
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "rubinius-grapher"
6
+ spec.version = Rubinius::Grapher::VERSION
7
+ spec.authors = ["Brian Shirai"]
8
+ spec.email = ["brixen@gmail.com"]
9
+
10
+ spec.summary = %q{A tool to graph Rubinius metrics and diagnostics data.}
11
+ spec.description = %q{Rubinius provides built-in performance metrics and also writes diagnostics data to a log. This tool can process logged diagnostics and metric data written to a file to produce various graphs.}
12
+ spec.homepage = "https://github.com/rubinius/rubinius-grapher"
13
+ spec.license = "MPL-2.0"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ spec.bindir = "exe"
17
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.11"
21
+ spec.add_development_dependency "rake", "~> 10.0"
22
+ end
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubinius-grapher
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Brian Shirai
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.11'
26
+ prerelease: false
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '10.0'
40
+ prerelease: false
41
+ description: Rubinius provides built-in performance metrics and also writes diagnostics
42
+ data to a log. This tool can process logged diagnostics and metric data written
43
+ to a file to produce various graphs.
44
+ email:
45
+ - brixen@gmail.com
46
+ executables: []
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - ".gitignore"
51
+ - Gemfile
52
+ - LICENSE
53
+ - README.md
54
+ - Rakefile
55
+ - bin/rbx-grapher
56
+ - lib/rubinius/grapher.rb
57
+ - lib/rubinius/grapher/version.rb
58
+ - rubinius-grapher.gemspec
59
+ homepage: https://github.com/rubinius/rubinius-grapher
60
+ licenses:
61
+ - MPL-2.0
62
+ metadata: {}
63
+ post_install_message:
64
+ rdoc_options: []
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project:
79
+ rubygems_version: 2.5.1
80
+ signing_key:
81
+ specification_version: 4
82
+ summary: A tool to graph Rubinius metrics and diagnostics data.
83
+ test_files: []