gchart 0.1.0 → 0.2.0
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.
- data/CHANGELOG.txt +7 -1
- data/README.txt +4 -1
- data/lib/gchart.rb +22 -8
- data/lib/version.rb +1 -1
- metadata +2 -2
data/CHANGELOG.txt
CHANGED
data/README.txt
CHANGED
@@ -26,7 +26,7 @@ query parameters using the :extras key, e.g.,
|
|
26
26
|
# bar chart
|
27
27
|
g = GChart.bar(:data => [100, 1000, 10000])
|
28
28
|
|
29
|
-
# pie chart
|
29
|
+
# pie chart (pie3d for a fancier look)
|
30
30
|
g = GChart.pie(:data => [33, 33, 34])
|
31
31
|
|
32
32
|
# venn diagram (asize, bsize, csize, ab%, bc%, ca%, abc%)
|
@@ -38,6 +38,9 @@ query parameters using the :extras key, e.g.,
|
|
38
38
|
# chart title
|
39
39
|
g = GChart.line(:title => "Awesomeness over Time", :data => [0, 10, 100])
|
40
40
|
|
41
|
+
# data set labels
|
42
|
+
g = GChart.line(:data => [[1, 2], [3, 4]], :labels => ["Monkeys", "Ferrets"])
|
43
|
+
|
41
44
|
# data set colors
|
42
45
|
g = GChart.line(:data => [[0, 10, 100], [100, 10, 0]], :colors => ["ff0000", "0000ff"])
|
43
46
|
|
data/lib/gchart.rb
CHANGED
@@ -5,7 +5,7 @@ require "uri"
|
|
5
5
|
|
6
6
|
class GChart
|
7
7
|
URL = "http://chart.apis.google.com/chart"
|
8
|
-
TYPES = %w(line linexy bar pie venn scatter).collect { |t| t.to_sym }
|
8
|
+
TYPES = %w(line linexy bar pie pie3d venn scatter).collect { |t| t.to_sym }
|
9
9
|
CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.".split("")
|
10
10
|
PAIRS = CHARS.collect { |first| CHARS.collect { |second| first + second } }.flatten
|
11
11
|
|
@@ -48,6 +48,11 @@ class GChart
|
|
48
48
|
# Array of RRGGBB colors, one per data set
|
49
49
|
attr_accessor :colors
|
50
50
|
|
51
|
+
# Array of data set labels
|
52
|
+
attr_accessor :labels
|
53
|
+
|
54
|
+
attr_accessor :max
|
55
|
+
|
51
56
|
# The chart type
|
52
57
|
attr_reader :type
|
53
58
|
|
@@ -81,7 +86,7 @@ class GChart
|
|
81
86
|
"#{width}x#{height}"
|
82
87
|
end
|
83
88
|
|
84
|
-
#
|
89
|
+
# Sets the chart's size as "WIDTHxHEIGHT".
|
85
90
|
def size=(size)
|
86
91
|
self.width, self.height = size.split("x").collect { |n| Integer(n) }
|
87
92
|
end
|
@@ -97,9 +102,8 @@ class GChart
|
|
97
102
|
open(to_url) { |data| data.read }
|
98
103
|
end
|
99
104
|
|
100
|
-
# Writes the chart's generated PNG. If +io_or_file+ quacks like an IO,
|
101
|
-
# +write+ will be called
|
102
|
-
# to "chart.png".
|
105
|
+
# Writes the chart's generated PNG to a file. If +io_or_file+ quacks like an IO,
|
106
|
+
# +write+ will be called on it instead.
|
103
107
|
def write(io_or_file="chart.png")
|
104
108
|
return io_or_file.write(fetch) if io_or_file.respond_to?(:write)
|
105
109
|
open(io_or_file, "w+") { |f| f.write(fetch) }
|
@@ -111,6 +115,12 @@ class GChart
|
|
111
115
|
params = { "cht" => google_chart_type, "chd" => google_data, "chs" => size }
|
112
116
|
params["chtt"] = title.tr("\n", "|").gsub(/\s+/, "+") if title
|
113
117
|
params["chco"] = colors.join(",") if colors
|
118
|
+
|
119
|
+
if labels
|
120
|
+
param = (type == :pie || type == :pie3d) ? "chl" : "chdl"
|
121
|
+
params[param] = labels.join("|")
|
122
|
+
end
|
123
|
+
|
114
124
|
params.merge(extras)
|
115
125
|
end
|
116
126
|
|
@@ -124,6 +134,8 @@ class GChart
|
|
124
134
|
"b" + (horizontal? ? "h" : "v") + (grouped? ? "g" : "s")
|
125
135
|
when :pie
|
126
136
|
"p"
|
137
|
+
when :pie3d
|
138
|
+
"p3"
|
127
139
|
when :venn
|
128
140
|
"v"
|
129
141
|
when :scatter
|
@@ -132,9 +144,11 @@ class GChart
|
|
132
144
|
end
|
133
145
|
|
134
146
|
def google_data
|
135
|
-
|
136
|
-
|
137
|
-
|
147
|
+
raw = data && data.first.is_a?(Array) ? data : [data]
|
148
|
+
max = self.max || raw.collect { |s| s.max }.max
|
149
|
+
|
150
|
+
sets = raw.collect do |set|
|
151
|
+
# we'll just always use the extended encoding for now
|
138
152
|
set.collect { |n| GChart.encode_extended(n * (PAIRS.size - 1) / max) }.join
|
139
153
|
end
|
140
154
|
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gchart
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ""
|
6
6
|
authors:
|
7
7
|
- John Barnette
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2007-12-
|
12
|
+
date: 2007-12-12 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|