svg-graph 1.0.5 → 2.0.1

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.
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: []