googlecharts 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/History.txt CHANGED
@@ -1,3 +1,6 @@
1
+ == 1.3.1
2
+ * added width and spacing options
3
+
1
4
  == 1.3.0
2
5
  * added support for google-o-meter
3
6
  * fixed a bug when the max value of a data set was 0
data/lib/gchart.rb CHANGED
@@ -15,7 +15,7 @@ class Gchart
15
15
  @@file_name = 'chart.png'
16
16
 
17
17
  attr_accessor :title, :type, :width, :height, :horizontal, :grouped, :legend, :data, :encoding, :max_value, :bar_colors,
18
- :title_color, :title_size, :custom, :axis_with_labels, :axis_labels
18
+ :title_color, :title_size, :custom, :axis_with_labels, :axis_labels, :bar_width_and_spacing
19
19
 
20
20
  class << self
21
21
  # Support for Gchart.line(:title => 'my title', :size => '400x600')
@@ -174,6 +174,28 @@ class Gchart
174
174
  "chco=#{@bar_colors}"
175
175
  end
176
176
 
177
+ # set bar spacing
178
+ # chbh=
179
+ # <bar width in pixels>,
180
+ # <optional space between bars in a group>,
181
+ # <optional space between groups>
182
+ def set_bar_width_and_spacing
183
+ width_and_spacing_values = case @bar_width_and_spacing
184
+ when String
185
+ @bar_width_and_spacing
186
+ when Array
187
+ @bar_width_and_spacing.join(',')
188
+ when Hash
189
+ width = @bar_width_and_spacing[:width] || 23
190
+ spacing = @bar_width_and_spacing[:spacing] || 4
191
+ group_spacing = @bar_width_and_spacing[:group_spacing] || 8
192
+ [width,spacing,group_spacing].join(',')
193
+ else
194
+ @bar_width_and_spacing.to_s
195
+ end
196
+ "chbh=#{width_and_spacing_values}"
197
+ end
198
+
177
199
  def fill_for(type=nil, color='', angle=nil)
178
200
  unless type.nil?
179
201
  case type
@@ -353,6 +375,8 @@ class Gchart
353
375
  set_data unless @data == []
354
376
  when '@bar_colors'
355
377
  set_bar_colors
378
+ when '@bar_width_and_spacing'
379
+ set_bar_width_and_spacing
356
380
  when '@axis_with_labels'
357
381
  set_axis_with_labels
358
382
  when '@axis_labels'
@@ -2,7 +2,7 @@ module GchartInfo #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 3
5
- TINY = 0
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/spec/gchart_spec.rb CHANGED
@@ -161,6 +161,42 @@ describe "a bar graph" do
161
161
  Gchart.bar(:bar_colors => ['efefef','00ffff']).include?('chco=efefef,00ffff').should be_true
162
162
  end
163
163
 
164
+ it 'should be able to accept a string of width and spacing options' do
165
+ Gchart.bar(:bar_width_and_spacing => '25,6').include?('chbh=25,6').should be_true
166
+ end
167
+
168
+ it 'should be able to accept a single fixnum width and spacing option to set the bar width' do
169
+ Gchart.bar(:bar_width_and_spacing => 25).include?('chbh=25').should be_true
170
+ end
171
+
172
+ it 'should be able to accept an array of width and spacing options' do
173
+ Gchart.bar(:bar_width_and_spacing => [25,6,12]).include?('chbh=25,6,12').should be_true
174
+ Gchart.bar(:bar_width_and_spacing => [25,6]).include?('chbh=25,6').should be_true
175
+ Gchart.bar(:bar_width_and_spacing => [25]).include?('chbh=25').should be_true
176
+ end
177
+
178
+ describe "with a hash of width and spacing options" do
179
+
180
+ before(:each) do
181
+ @default_width = 23
182
+ @default_spacing = 4
183
+ @default_group_spacing = 8
184
+ end
185
+
186
+ it 'should be able to have a custom bar width' do
187
+ Gchart.bar(:bar_width_and_spacing => {:width => 19}).include?("chbh=19,#{@default_spacing},#{@default_group_spacing}").should be_true
188
+ end
189
+
190
+ it 'should be able to have custom spacing' do
191
+ Gchart.bar(:bar_width_and_spacing => {:spacing => 19}).include?("chbh=#{@default_width},19,#{@default_group_spacing}").should be_true
192
+ end
193
+
194
+ it 'should be able to have custom group spacing' do
195
+ Gchart.bar(:bar_width_and_spacing => {:group_spacing => 19}).include?("chbh=#{@default_width},#{@default_spacing},19").should be_true
196
+ end
197
+
198
+ end
199
+
164
200
  end
165
201
 
166
202
  describe "a line chart" do
@@ -220,7 +256,7 @@ describe "a line chart" do
220
256
  end
221
257
 
222
258
  it "should be able to render a graph where all the data values are 0" do
223
- Gchart.line(:data => [0, 0, 0]).include?("chd=s:AAA").should be true
259
+ Gchart.line(:data => [0, 0, 0]).include?("chd=s:AAA").should be_true
224
260
  end
225
261
 
226
262
  end
@@ -324,7 +360,7 @@ describe "a google-o-meter" do
324
360
  @chart = Gchart.meter(:data => @data)
325
361
  end
326
362
 
327
- it "should greate a meter" do
363
+ it "should create a meter" do
328
364
  @chart.include?('cht=gom').should be_true
329
365
  end
330
366
 
data/website/index.html CHANGED
@@ -33,7 +33,7 @@
33
33
  <h1>Googlecharts</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/googlecharts"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/googlecharts" class="numbers">1.3.0</a>
36
+ <a href="http://rubyforge.org/projects/googlecharts" class="numbers">1.3.1</a>
37
37
  </div>
38
38
  <h2>&#x2192; &#8216;Sexy Charts using Google <span class="caps">API</span> &#38; Ruby&#8217;</h2>
39
39
 
@@ -232,6 +232,32 @@ If you never added <a href="http://github.com">GitHub</a> as a gem source, you w
232
232
  <p><img src="http://chart.apis.google.com/chart?cht=bvg&#38;chs=300x200&#38;chd=s:9UGo,Uo9C&#38;chco=FF0000,00FF00" title="grouped bars" alt="grouped bars" /></p>
233
233
 
234
234
 
235
+ <p><strong>bar chart width and spacing</strong></p>
236
+
237
+
238
+ <p>A bar chart can accept options to set the width of the bars, spacing between bars and spacing between bar groups. To set these, you can either provide a string, array or hash.</p>
239
+
240
+
241
+ <p>The Google <span class="caps">API</span> sets these options in the order of width, spacing, and group spacing, with both spacing values being optional. So, if you provide a string or array, provide them in that order:</p>
242
+
243
+
244
+ <p><pre class='syntax'>
245
+ <span class="constant">Gchart</span><span class="punct">.</span><span class="ident">bar</span><span class="punct">(</span><span class="symbol">:data</span> <span class="punct">=&gt;</span> <span class="attribute">@data</span><span class="punct">,</span> <span class="symbol">:bar_width_and_spacing</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">25,6</span><span class="punct">')</span> <span class="comment"># width of 25, spacing of 6</span>
246
+ <span class="constant">Gchart</span><span class="punct">.</span><span class="ident">bar</span><span class="punct">(</span><span class="symbol">:data</span> <span class="punct">=&gt;</span> <span class="attribute">@data</span><span class="punct">,</span> <span class="symbol">:bar_width_and_spacing</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">25,6,12</span><span class="punct">')</span> <span class="comment"># width of 25, spacing of 6, group spacing of 12</span>
247
+ <span class="constant">Gchart</span><span class="punct">.</span><span class="ident">bar</span><span class="punct">(</span><span class="symbol">:data</span> <span class="punct">=&gt;</span> <span class="attribute">@data</span><span class="punct">,</span> <span class="symbol">:bar_width_and_spacing</span> <span class="punct">=&gt;</span> <span class="punct">[</span><span class="number">25</span><span class="punct">,</span><span class="number">6</span><span class="punct">])</span> <span class="comment"># width of 25, spacing of 6</span>
248
+ <span class="constant">Gchart</span><span class="punct">.</span><span class="ident">bar</span><span class="punct">(</span><span class="symbol">:data</span> <span class="punct">=&gt;</span> <span class="attribute">@data</span><span class="punct">,</span> <span class="symbol">:bar_width_and_spacing</span> <span class="punct">=&gt;</span> <span class="number">25</span><span class="punct">)</span> <span class="comment"># width of 25</span>
249
+ </pre></p>
250
+
251
+
252
+ <p>The hash lets you set these values directly, with the Google default values set for any options you don&#8217;t include:</p>
253
+
254
+
255
+ <p><pre class='syntax'>
256
+ <span class="constant">Gchart</span><span class="punct">.</span><span class="ident">bar</span><span class="punct">(</span><span class="symbol">:data</span> <span class="punct">=&gt;</span> <span class="attribute">@data</span><span class="punct">,</span> <span class="symbol">:bar_width_and_spacing</span> <span class="punct">=&gt;</span> <span class="punct">{</span><span class="symbol">:width</span> <span class="punct">=&gt;</span> <span class="number">19</span><span class="punct">})</span>
257
+ <span class="constant">Gchart</span><span class="punct">.</span><span class="ident">bar</span><span class="punct">(</span><span class="symbol">:data</span> <span class="punct">=&gt;</span> <span class="attribute">@data</span><span class="punct">,</span> <span class="symbol">:bar_width_and_spacing</span> <span class="punct">=&gt;</span> <span class="punct">{</span><span class="symbol">:spacing</span> <span class="punct">=&gt;</span> <span class="number">10</span><span class="punct">,</span> <span class="symbol">:group_spacing</span> <span class="punct">=&gt;</span> <span class="number">12</span><span class="punct">})</span>
258
+ </pre></p>
259
+
260
+
235
261
  <p><strong>pie chart</strong></p>
236
262
 
237
263
 
@@ -639,9 +665,10 @@ Data set:
639
665
  <h3>Contributors</h3>
640
666
 
641
667
 
642
- <p><a href="http://github.com/dbgrandi">David Grandinetti</a></p>
668
+ <p><a href="http://github.com/dbgrandi">David Grandinetti</a>
669
+ <a href="http://github.com/takeo">Toby Sterrett</a></p>
643
670
  <p class="coda">
644
- <a href="mattaimonetti@gmail.com">Matt Aimonetti</a>, 7th May 2008<br>
671
+ <a href="mattaimonetti@gmail.com">Matt Aimonetti</a>, 8th May 2008<br>
645
672
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
646
673
  </p>
647
674
  </div>
data/website/index.txt CHANGED
@@ -145,6 +145,26 @@ The problem now, is that we can't see the first value of the second dataset sinc
145
145
 
146
146
  !http://chart.apis.google.com/chart?cht=bvg&chs=300x200&chd=s:9UGo,Uo9C&chco=FF0000,00FF00(grouped bars)!
147
147
 
148
+ *bar chart width and spacing*
149
+
150
+ A bar chart can accept options to set the width of the bars, spacing between bars and spacing between bar groups. To set these, you can either provide a string, array or hash.
151
+
152
+ The Google API sets these options in the order of width, spacing, and group spacing, with both spacing values being optional. So, if you provide a string or array, provide them in that order:
153
+
154
+ <pre syntax="ruby">
155
+ Gchart.bar(:data => @data, :bar_width_and_spacing => '25,6') # width of 25, spacing of 6
156
+ Gchart.bar(:data => @data, :bar_width_and_spacing => '25,6,12') # width of 25, spacing of 6, group spacing of 12
157
+ Gchart.bar(:data => @data, :bar_width_and_spacing => [25,6]) # width of 25, spacing of 6
158
+ Gchart.bar(:data => @data, :bar_width_and_spacing => 25) # width of 25
159
+ </pre>
160
+
161
+ The hash lets you set these values directly, with the Google default values set for any options you don't include:
162
+
163
+ <pre syntax="ruby">
164
+ Gchart.bar(:data => @data, :bar_width_and_spacing => {:width => 19})
165
+ Gchart.bar(:data => @data, :bar_width_and_spacing => {:spacing => 10, :group_spacing => 12})
166
+ </pre>
167
+
148
168
 
149
169
  *pie chart*
150
170
 
@@ -453,3 +473,4 @@ Comments are welcome. Send an email to "Matt Aimonetti":mailto:mattaimonetti@gma
453
473
  h3. Contributors
454
474
 
455
475
  "David Grandinetti":http://github.com/dbgrandi
476
+ "Toby Sterrett":http://github.com/takeo
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: googlecharts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Aimonetti
@@ -30,7 +30,7 @@ cert_chain:
30
30
  ZR7qHIpykzr3ezcNiWtBWw==
31
31
  -----END CERTIFICATE-----
32
32
 
33
- date: 2008-05-07 00:00:00 -07:00
33
+ date: 2008-05-08 00:00:00 -07:00
34
34
  default_executable:
35
35
  dependencies: []
36
36
 
metadata.gz.sig CHANGED
Binary file