svg-graph 1.0.5 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/History.txt +18 -0
  3. data/README.markdown +90 -6
  4. data/Rakefile +26 -14
  5. data/lib/SVG/Graph/Bar.rb +2 -2
  6. data/lib/SVG/Graph/BarBase.rb +25 -24
  7. data/lib/SVG/Graph/BarHorizontal.rb +1 -1
  8. data/lib/SVG/Graph/ErrBar.rb +189 -0
  9. data/lib/SVG/Graph/Graph.rb +141 -64
  10. data/lib/SVG/Graph/Line.rb +1 -1
  11. data/lib/SVG/Graph/Pie.rb +76 -49
  12. data/lib/SVG/Graph/Plot.rb +2 -2
  13. data/lib/SVG/Graph/Schedule.rb +18 -19
  14. data/lib/SVG/Graph/TimeSeries.rb +26 -22
  15. data/lib/svggraph.rb +12 -10
  16. data/test/test_svg_graph.rb +48 -6
  17. metadata +41 -136
  18. data.tar.gz.sig +0 -2
  19. data/Manifest.txt +0 -56
  20. data/build.xml +0 -143
  21. data/dist.xml.in +0 -46
  22. data/images/bar.png +0 -0
  23. data/images/bar.svg +0 -76
  24. data/images/bar.svgz +0 -0
  25. data/images/barhorizontal.png +0 -0
  26. data/images/barhorizontal.svg +0 -76
  27. data/images/barhorizontal.svgz +0 -0
  28. data/images/line.png +0 -0
  29. data/images/line.svg +0 -80
  30. data/images/line.svgz +0 -0
  31. data/images/pie.png +0 -0
  32. data/images/pie.svg +0 -70
  33. data/images/pie.svgz +0 -0
  34. data/images/plot.png +0 -0
  35. data/images/plot.svg +0 -131
  36. data/images/plot.svgz +0 -0
  37. data/images/schedule.png +0 -0
  38. data/images/schedule.svg +0 -67
  39. data/images/timeseries.png +0 -0
  40. data/images/timeseries.svg +0 -179
  41. data/images/timeseries.svgz +0 -0
  42. data/index.xml +0 -281
  43. data/install.rb +0 -161
  44. data/screenshots.xml +0 -148
  45. data/style/common.xsl +0 -37
  46. data/style/release_html.xsl +0 -169
  47. data/style/release_txt.xsl +0 -25
  48. data/svg-graph.gemspec +0 -58
  49. data/test/data.txt +0 -4
  50. data/test/plot.rb +0 -51
  51. data/test/schedule.rb +0 -43
  52. data/test/single.rb +0 -33
  53. data/test/test.rb +0 -54
  54. data/test/test_data_point.rb +0 -67
  55. data/test/test_plot.rb +0 -282
  56. data/test/timeseries.rb +0 -58
  57. metadata.gz.sig +0 -1
@@ -1,5 +1,5 @@
1
- require 'SVG/Graph/Graph'
2
- require 'SVG/Graph/DataPoint'
1
+ require_relative 'Graph'
2
+ require_relative 'DataPoint'
3
3
 
4
4
  module SVG
5
5
  module Graph
@@ -1,8 +1,5 @@
1
- require 'SVG/Graph/Plot'
2
- TIME_PARSE_AVAIL = (RUBY_VERSION =~ /1\.9\./) ? true : false
3
- if not TIME_PARSE_AVAIL then
4
- require 'parsedate'
5
- end
1
+ require 'date'
2
+ require_relative 'Plot'
6
3
 
7
4
  module SVG
8
5
  module Graph
@@ -132,14 +129,23 @@ module SVG
132
129
  # graph.add_data(
133
130
  # :data => d1,
134
131
  # :title => 'Meetings'
132
+ # :template => '%H:%M'
135
133
  # )
136
134
  # graph.add_data(
137
135
  # :data => d2,
138
136
  # :title => 'Plays'
137
+ # :template => '%d/%m/%y'
139
138
  # )
140
139
  #
141
140
  # Note that the data must be in time,value pairs, and that the date format
142
- # may be any date that is parseable by ParseDate.
141
+ # may be any date that is parseable by DateTime#parse, DateTime#strptime.
142
+ # The :template argument is optional. By default DateTime#parse will be used.
143
+ # Checkout the ruby doc for valit template notation:
144
+ # http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/Date.html#method-i-strftime
145
+ # http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html#method-c-parse
146
+ # http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html#method-c-strptime.
147
+ #
148
+ #
143
149
  # Also note that, in this example, we're mixing scales; the data from d1
144
150
  # will probably not be discernable if both data sets are plotted on the same
145
151
  # graph, since d1 is too granular.
@@ -153,7 +159,6 @@ module SVG
153
159
  "data points" unless data[:data].length % 3 == 0
154
160
  return if data[:data].length == 0
155
161
 
156
-
157
162
  y = []
158
163
  x_start = []
159
164
  x_end = []
@@ -162,13 +167,12 @@ module SVG
162
167
  if im3 == 0
163
168
  y << data[:data][i]
164
169
  else
165
- if TIME_PARSE_AVAIL then
166
- arr = DateTime.parse(data[:data][i])
167
- t = arr.to_time
170
+ if data.has_key?(:template) && data[:template].kind_of?(String)
171
+ arr = DateTime.strptime(data[:data][i], data[:template])
168
172
  else
169
- arr = ParseDate.parsedate( data[:data][i] )
170
- t = Time.local( *arr[0,6].compact )
173
+ arr = DateTime.parse(data[:data][i])
171
174
  end
175
+ t = arr.to_time
172
176
  (im3 == 1 ? x_start : x_end) << t.to_i
173
177
  end
174
178
  }
@@ -180,13 +184,8 @@ module SVG
180
184
  protected
181
185
 
182
186
  def min_x_value=(value)
183
- if TIME_PARSE_AVAIL then
184
- arr = Time.parse(value)
185
- t = arr.to_time
186
- else
187
- arr = ParseDate.parsedate( value )
188
- t = Time.local( *arr[0,6].compact )
189
- end
187
+ arr = Time.parse(value)
188
+ t = arr.to_time
190
189
  @min_x_value = t.to_i
191
190
  end
192
191
 
@@ -1,8 +1,5 @@
1
- require 'SVG/Graph/Plot'
2
- TIME_PARSE_AVAIL = (RUBY_VERSION =~ /1\.9\./) ? true : false
3
- if not TIME_PARSE_AVAIL then
4
- require 'parsedate'
5
- end
1
+ require 'date'
2
+ require_relative 'Plot'
6
3
 
7
4
  module SVG
8
5
  module Graph
@@ -13,7 +10,7 @@ module SVG
13
10
  # require 'SVG/Graph/TimeSeries'
14
11
  #
15
12
  # # Data sets are x,y pairs
16
- # projection = ["6/17/72", 11, "1/11/72", 7, "4/13/04 17:31", 11,
13
+ # projection = ["6/17/72", 11, "1/11/72", 7, "4/13/04", 11,
17
14
  # "9/11/01", 9, "9/1/85", 2, "9/1/88", 1, "1/15/95", 13]
18
15
  # actual = ["8/1/73", 18, "3/1/77", 15, "10/1/98", 4,
19
16
  # "5/1/02", 14, "3/1/95", 6, "8/1/91", 12, "12/1/87", 6,
@@ -30,8 +27,8 @@ module SVG
30
27
  # :key => true,
31
28
  # :scale_x_integers => true,
32
29
  # :scale_y_integers => true,
33
- # :min_x_value => 0,
34
- # :min_y_value => 0,
30
+ # :min_x_value => 0, # Integer, Time, or parseable by DateTime#parse
31
+ # :min_y_value => 0, # Integer, Time, or parseable by DateTime#parse
35
32
  # :show_data_values => true,
36
33
  # :show_x_guidelines => true,
37
34
  # :show_x_title => true,
@@ -44,13 +41,15 @@ module SVG
44
41
  # })
45
42
  #
46
43
  # graph.add_data({
47
- # :data => projection,
44
+ # :data => projection,
48
45
  # :title => 'Projected',
46
+ # :template => '%d/%m/%y'
49
47
  # })
50
48
  #
51
49
  # graph.add_data({
52
- # :data => actual,
50
+ # :data => actual,
53
51
  # :title => 'Actual',
52
+ # :template => '%d/%m/%y'
54
53
  # })
55
54
  #
56
55
  # print graph.burn()
@@ -81,7 +80,7 @@ module SVG
81
80
  # and that the data in the datasets needn't be in order; they will be ordered
82
81
  # by the plot along the X-axis.
83
82
  #
84
- # The dates must be parseable by ParseDate, but otherwise can be
83
+ # The dates must be parseable by DateTime#parse or DateTime#strptime, but otherwise can be
85
84
  # any order of magnitude (seconds within the hour, or years)
86
85
  #
87
86
  # = See also
@@ -138,31 +137,37 @@ module SVG
138
137
  # # ("14:20",6)
139
138
  # graph.add_data(
140
139
  # :data => d1,
141
- # :title => 'One'
140
+ # :title => 'One',
141
+ # :template => '%H:%M'
142
142
  # )
143
143
  # graph.add_data(
144
144
  # :data => d2,
145
- # :title => 'Two'
145
+ # :title => 'Two',
146
+ # :template => '%H:%M'
146
147
  # )
147
148
  #
148
149
  # Note that the data must be in time,value pairs. The time may be any date in
149
150
  # a format that is parseable by ParseDate, a Time object, or a number of seconds
150
151
  # after the unix epoch.
151
152
  def add_data data
153
+ @time_template = data[:template]
152
154
  data[:data].each_index do |i|
153
155
  data[:data][i] = parse_time(data[:data][i]).to_i if i % 2 == 0
154
156
  end
157
+ @time_template = nil # reset for the next data series
155
158
  super(data)
156
159
  end
157
160
 
158
161
 
159
162
  protected
160
163
 
164
+
161
165
  def min_x_value=(value)
162
166
  t = parse_time(value)
163
167
  @min_x_value = t.to_i
164
168
  end
165
169
 
170
+ # value should be
166
171
  def max_x_value=(value)
167
172
  t = parse_time(value)
168
173
  @max_x_value = t.to_i
@@ -190,12 +195,10 @@ module SVG
190
195
  when Time
191
196
  return time
192
197
  when String
193
- if TIME_PARSE_AVAIL then
194
- arr = DateTime.parse(time)
195
- return arr.to_time
198
+ if @time_template.kind_of? String
199
+ return DateTime.strptime(time, @time_template).to_time
196
200
  else
197
- arr = ParseDate.parsedate(time)
198
- return Time.local( *arr[0,6].compact )
201
+ return DateTime.parse(time).to_time
199
202
  end
200
203
  when Integer
201
204
  return Time.at(time)
@@ -252,7 +255,8 @@ module SVG
252
255
  end
253
256
  min.step( max, scale_division ) {|v| rv << v}
254
257
  return rv
255
- end
256
- end
257
- end
258
- end
258
+ end # get_x_values
259
+
260
+ end # class TimeSeries
261
+ end # module Graph
262
+ end # module SVG
data/lib/svggraph.rb CHANGED
@@ -1,14 +1,16 @@
1
1
  module SVG
2
2
  module Graph
3
- VERSION = '1.0.5'
4
- autoload(:Bar, 'SVG/Graph/Bar')
5
- autoload(:BarBase, 'SVG/Graph/BarBase')
6
- autoload(:BarHorizontal, 'SVG/Graph/BarHorizontal')
7
- autoload(:Line, 'SVG/Graph/Line')
8
- autoload(:Pie, 'SVG/Graph/Pie')
9
- autoload(:Plot, 'SVG/Graph/Plot')
10
- autoload(:Schedule, 'SVG/Graph/Schedule')
11
- autoload(:TimeSeries, 'SVG/Graph/TimeSeries')
12
- autoload(:DataPoint, 'SVG/Graph/DataPoint')
3
+ VERSION = '2.0.1'
13
4
  end
14
5
  end
6
+ require_relative 'SVG/Graph/DataPoint'
7
+ require_relative 'SVG/Graph/BarBase'
8
+ require_relative 'SVG/Graph/Graph'
9
+ require_relative 'SVG/Graph/Bar'
10
+ require_relative 'SVG/Graph/BarHorizontal'
11
+ require_relative 'SVG/Graph/ErrBar'
12
+ require_relative 'SVG/Graph/Line'
13
+ require_relative 'SVG/Graph/Pie'
14
+ require_relative 'SVG/Graph/Plot'
15
+ require_relative 'SVG/Graph/Schedule'
16
+ require_relative 'SVG/Graph/TimeSeries'
@@ -1,9 +1,14 @@
1
- $: << File.dirname(__FILE__) + '/../lib'
2
- require "test/unit"
3
- require "svggraph"
4
- require "SVG/Graph/DataPoint"
1
+ require_relative '../lib/svggraph'
2
+ require_relative '../lib/SVG/Graph/DataPoint'
3
+ require 'minitest/autorun'
4
+ require 'minitest/reporters'
5
+
6
+ reporter_options = { :color => true }
7
+ Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(reporter_options)]
8
+
9
+
10
+ class TestSvgGraph < Minitest::Test
5
11
 
6
- class TestSvgGraph < Test::Unit::TestCase
7
12
  def test_bar_line_and_pie
8
13
  fields = %w(Jan Feb Mar);
9
14
  data_sales_02 = [12, 45, 21]
@@ -21,6 +26,43 @@ class TestSvgGraph < Test::Unit::TestCase
21
26
  out=graph.burn
22
27
  assert(out=~/Created with SVG::Graph/)
23
28
  end
24
- end
29
+ end # test_bar_line_and_pie
30
+
31
+ def test_pie_100_percent
32
+ fields = %w(Internet TV Newspaper Magazine Radio)
33
+ #data1 = [2, 3, 1, 3, 1]
34
+ #data2 = [0, 2, 1, 5, 4]
35
+ data1 = [0, 3, 0, 0, 0]
36
+ data2 = [0, 6, 0, 0, 0]
37
+
38
+ graph = SVG::Graph::Pie.new(
39
+ :height => 500,
40
+ :width => 300,
41
+ :fields => fields,
42
+ :graph_title => "100% pie",
43
+ :show_graph_title => true,
44
+ :show_data_labels => true,
45
+ :show_x_guidelines => true,
46
+ :show_x_title => true,
47
+ :x_title => "Time"
48
+ )
49
+ graph.add_data(
50
+ :data => data1,
51
+ :title => 'data1'
52
+ )
53
+
54
+ graph.add_data(
55
+ :data => data2,
56
+ :title => 'data2'
57
+ )
58
+ out = graph.burn
59
+ File.open("pie_100.svg", "w") {|fout|
60
+ fout.print( out )
61
+ }
62
+ assert_match(/TV 100%/, out, "100% text not found in graph")
63
+ assert_match(/circle/, out, "no circle was found in graph")
64
+
65
+ end # test_pie_100_percent
66
+
25
67
  end
26
68
 
metadata CHANGED
@@ -1,118 +1,49 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: svg-graph
3
- version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 0
9
- - 5
10
- version: 1.0.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.1
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Sean Russell
14
8
  - Claudio Bustos
15
9
  - Liehann Loots
16
10
  - Piergiuliano Bossi
11
+ - Manuel Widmer
17
12
  autorequire:
18
13
  bindir: bin
19
- cert_chain:
20
- - |
21
- -----BEGIN CERTIFICATE-----
22
- MIIDMjCCAhqgAwIBAgIBADANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhjbGJ1
23
- c3RvczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
24
- MB4XDTEwMDMyOTIxMzg1NVoXDTExMDMyOTIxMzg1NVowPzERMA8GA1UEAwwIY2xi
25
- dXN0b3MxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
26
- bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf8JVMGqE7m5kYb+PNN
27
- neZv2pcXV5fQCi6xkyG8bi2/SIFy/LyxuvLzEeOxBeaz1Be93bayIUquOIqw3dyw
28
- /KXWa31FxuNuvAm6CN8fyeRYX/ou4cw3OIUUnIvB7RMNIu4wbgeM6htV/QEsNLrv
29
- at1/mh9JpqawPrcjIOVMj4BIp67vmzJCaUf+S/H2uYtSO09F+YQE3tv85TPeRmqU
30
- yjyXyTc/oJiw1cXskUL8UtMWZmrwNLHXuZWWIMzkjiz3UNdhJr/t5ROk8S2WPznl
31
- 0bMy/PMIlAbqWolRn1zl2VFJ3TaXScbqImY8Wf4g62b/1ZSUlGrtnLNsCYXrWiso
32
- UPUCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGu9
33
- rrJ1H64qRmNNu3Jj/Qjvh0u5MA0GCSqGSIb3DQEBBQUAA4IBAQCV0Unka5isrhZk
34
- GjqSDqY/6hF+G2pbFcbWUpjmC8NWtAxeC+7NGV3ljd0e1SLfoyBj4gnFtFmY8qX4
35
- K02tgSZM0eDV8TpgFpWXzK6LzHvoanuahHLZEtk/+Z885lFene+nHadkem1n9iAB
36
- cs96JO9/JfFyuXM27wFAwmfHCmJfPF09R4VvGHRAvb8MGzSVgk2i06OJTqkBTwvv
37
- JHJdoyw3+8bw9RJ+jLaNoQ+xu+1pQdS2bb3m7xjZpufml/m8zFCtjYM/7qgkKR8z
38
- /ZZt8lCiKfFArppRrZayE2FVsps4X6WwBdrKTMZ0CKSXTRctbEj1BAZ67eoTvBBt
39
- rpP0jjs0
40
- -----END CERTIFICATE-----
41
-
42
- date: 2011-10-03 00:00:00 -03:00
43
- default_executable:
44
- dependencies:
45
- - !ruby/object:Gem::Dependency
46
- name: hoe
47
- prerelease: false
48
- requirement: &id001 !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- hash: 47
54
- segments:
55
- - 2
56
- - 8
57
- - 0
58
- version: 2.8.0
59
- type: :development
60
- version_requirements: *id001
61
- description: |-
62
- This is a revision of the [SVG::Graph library](http://www.germane-software.com/software/SVG/SVG::Graph/) by Sean Russell with touch-ups to make it run on Ruby 1.9.x and be gem-installable. See History.txt for other changes
63
-
64
- SVG:::Graph is a pure Ruby library for generating charts, which are a type of graph where the values of one axis are not scalar. SVG::Graph has a verry similar API to the Perl library SVG::TT::Graph, and the resulting charts also look the same. This isn't surprising, because SVG::Graph started as a loose port of SVG::TT::Graph, although the internal code no longer resembles the Perl original at all.
65
- email:
14
+ cert_chain: []
15
+ date: 2016-08-08 00:00:00.000000000 Z
16
+ dependencies: []
17
+ description: "Gem version of SVG:::Graph. SVG:::Graph is a pure Ruby library for generating
18
+ charts, \nwhich are a type of graph where the values of one axis are not scalar.
19
+ SVG::Graph has a verry similar API to \nthe Perl library SVG::TT::Graph, and the
20
+ resulting charts also look the same. This isn't surprising, \nbecause SVG::Graph
21
+ started as a loose port of SVG::TT::Graph, although the internal code no longer
22
+ resembles \nthe Perl original at all.\n "
23
+ email:
66
24
  - ser_AT_germane-software.com
67
25
  - clbustos_AT_gmail.com
68
- - liehhanl_AT_gmail.com
69
- - pgbossi_AT_gmail.com
26
+ - liehannl_AT_gmail_DOT_com
27
+ - pgbossi_AT_gmail_DOT_com
28
+ - m-widmer_AT_gmx_DOT_ch
70
29
  executables: []
71
-
72
30
  extensions: []
73
-
74
- extra_rdoc_files:
75
- - GPL.txt
76
- - History.txt
31
+ extra_rdoc_files:
77
32
  - LICENSE.txt
78
- - Manifest.txt
33
+ - README.markdown
79
34
  - README.txt
80
- files:
35
+ files:
81
36
  - GPL.txt
82
37
  - History.txt
83
38
  - LICENSE.txt
84
- - Manifest.txt
85
39
  - README.markdown
86
40
  - README.txt
87
41
  - Rakefile
88
- - build.xml
89
- - dist.xml.in
90
- - images/bar.png
91
- - images/bar.svg
92
- - images/bar.svgz
93
- - images/barhorizontal.png
94
- - images/barhorizontal.svg
95
- - images/barhorizontal.svgz
96
- - images/line.png
97
- - images/line.svg
98
- - images/line.svgz
99
- - images/pie.png
100
- - images/pie.svg
101
- - images/pie.svgz
102
- - images/plot.png
103
- - images/plot.svg
104
- - images/plot.svgz
105
- - images/schedule.png
106
- - images/schedule.svg
107
- - images/timeseries.png
108
- - images/timeseries.svg
109
- - images/timeseries.svgz
110
- - index.xml
111
- - install.rb
112
42
  - lib/SVG/Graph/Bar.rb
113
43
  - lib/SVG/Graph/BarBase.rb
114
44
  - lib/SVG/Graph/BarHorizontal.rb
115
45
  - lib/SVG/Graph/DataPoint.rb
46
+ - lib/SVG/Graph/ErrBar.rb
116
47
  - lib/SVG/Graph/Graph.rb
117
48
  - lib/SVG/Graph/Line.rb
118
49
  - lib/SVG/Graph/Pie.rb
@@ -120,56 +51,30 @@ files:
120
51
  - lib/SVG/Graph/Schedule.rb
121
52
  - lib/SVG/Graph/TimeSeries.rb
122
53
  - lib/svggraph.rb
123
- - screenshots.xml
124
- - style/common.xsl
125
- - style/release_html.xsl
126
- - style/release_txt.xsl
127
- - svg-graph.gemspec
128
- - test/data.txt
129
- - test/plot.rb
130
- - test/schedule.rb
131
- - test/single.rb
132
- - test/test.rb
133
- - test/test_data_point.rb
134
- - test/test_plot.rb
135
54
  - test/test_svg_graph.rb
136
- - test/timeseries.rb
137
- has_rdoc: true
138
55
  homepage: http://www.germane-software.com/software/SVG/SVG::Graph/
139
- licenses: []
140
-
56
+ licenses:
57
+ - GPL
58
+ metadata: {}
141
59
  post_install_message:
142
- rdoc_options:
143
- - --main
144
- - README.txt
145
- require_paths:
60
+ rdoc_options: []
61
+ require_paths:
146
62
  - lib
147
- required_ruby_version: !ruby/object:Gem::Requirement
148
- none: false
149
- requirements:
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
150
65
  - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: 3
153
- segments:
154
- - 0
155
- version: "0"
156
- required_rubygems_version: !ruby/object:Gem::Requirement
157
- none: false
158
- requirements:
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
159
70
  - - ">="
160
- - !ruby/object:Gem::Version
161
- hash: 3
162
- segments:
163
- - 0
164
- version: "0"
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
165
73
  requirements: []
166
-
167
- rubyforge_project: ruby-statsample
168
- rubygems_version: 1.3.7
74
+ rubyforge_project:
75
+ rubygems_version: 2.4.8
169
76
  signing_key:
170
- specification_version: 3
171
- summary: This is a revision of the [SVG::Graph library](http://www.germane-software.com/software/SVG/SVG::Graph/) by Sean Russell with touch-ups to make it run on Ruby 1.9.x and be gem-installable
172
- test_files:
173
- - test/test_data_point.rb
174
- - test/test_svg_graph.rb
175
- - test/test_plot.rb
77
+ specification_version: 4
78
+ summary: SVG:::Graph is a pure Ruby library for generating charts, which are a type
79
+ of graph where the values of one axis are not scalar.
80
+ test_files: []