/
sinatra-googlecharts.rb
110 lines (92 loc) · 2.25 KB
/
sinatra-googlecharts.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
require 'gchart'
# simple lines
get '/graph' do
line = Gchart.line(:size => '200x300',
:title => "Graph",
:bg => 'efefef',
:legend => ['Blabla', 'Data'],
:data => [[0, 40, 10, 70, 20],[41, 10, 80, 50]], :line_colors => "FF0000,00FF00")
swap_var(line)
haml :chart
end
# finance
get '/finance' do
data = [27,25,25,25,25,27,100,31,25,36,25,25,39,25,31,25,25,25,26,26,
25,25,28,25,25,100,28,27,31,25,27,27,29,25,27,26,26,25,26,26,35,33,
34,25,26,25,36,25,26,37,33,33,37,37,39,25,25,25,25]
@sparkline = Gchart.sparkline(:data => data,
:size => '300x200',
:line_colors => 'FF0000',
:title => "Finance stile chart"
)
swap_var(@sparkline)
haml :chart
end
# Bars
get '/bars' do
@chart = Gchart.bar(:data => [[300,100,30,200],[300,100,30,200]],
:bar_colors => ['FF0000','00FF00'],
:title => "Bar graph",
:legend => ["wwwwww","zzzzzz"],
:axis_with_labels => 'x',
:axis_labels => ['Jan','Dec','Jan','Dec','Jan']
)
haml :chart
end
# background changing
get '/background' do
@chart = Gchart.bar(:title => "Background changing sample",
:data => [15,30,10,20,100,20,40,100,90,100,80],
:background => "6495ED"
)
haml :chart
end
get '/pizza' do
@chart = Gchart.pie(:data => [20,35,45],
:title => "Pizza graph"
)
haml :chart
end
get '/pizza3d' do
@chart = Gchart.pie_3d(:title => 'ruby_fu', :size => '400x200',
:data => [10, 45, 45], :labels => ["Brasil", "Argentina", "Mexico"] )
haml :chart
end
get '/' do
haml :index
end
def swap_var(var)
@chart = var
end
__END__
@@ layout
!!! 1.1
%html
%head
%title GitWatch
%link{:rel => 'stylesheet', :href => 'http://www.blueprintcss.org/blueprint/screen.css', :type => 'text/css'}
%body
.container
%p
= yield
@@ index
%h1 Many Charts:
%ul
%a{:href => "/graph"} /graph
%br
%a{:href => "/finance"} /finance
%br
%a{:href => "/bars"} /bars
%br
%a{:href => "/background"} /background
%br
%a{:href => "/pizza"} /pizza
%br
%a{:href => "/pizza3d"} /pizza3d
%br
@@ chart
%h1 Chart:
%img{:src => @chart}