swagchart 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -52
- data/lib/swagchart/helper.rb +20 -19
- data/lib/swagchart/version.rb +1 -1
- data/swagchart-1.2.0.gem +0 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 361389686191b4ccf09b4bee58c0b4a36425ffad
|
4
|
+
data.tar.gz: 7ce73f89b87c6523c36c19eb8a0644108c9774d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16ea22dbb261db396b6471ac711a73c719dd7fa68c10331e8dc95e0803391d0a14e18eb72ba7e3504568c2af3fb38824417adfa2978e20a82daa83c7a916d1ba
|
7
|
+
data.tar.gz: 60d37cea617ff2eba35961424dbb7c95e46aa552a8077ea4c186544f3df429d65daab374a8348ea58efb7b136f6d420eedafd6e35c3825779c1954d35c6dd747
|
data/README.md
CHANGED
@@ -14,61 +14,23 @@ Works with Rails, Sinatra and most browsers (including IE 6).
|
|
14
14
|
|
15
15
|
## Usage examples
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
Pass data as a Array, Hash or "DataTable"
|
32
|
-
|
33
|
-
```erb
|
34
|
-
<%= chart :pie_chart, [["Football", 10], ["Basketball", 5]] %>
|
35
|
-
```
|
36
|
-
|
37
|
-
```erb
|
38
|
-
<%= chart :pie_chart, {"Football" => 10, "Basketball" => 5} %>
|
39
|
-
```
|
40
|
-
|
41
|
-
```erb
|
42
|
-
<%= chart :pie_chart, [["Sport", "Popularity"], ["Football", 10], ["Basketball", 5]] %>
|
43
|
-
```
|
44
|
-
|
45
|
-
Multiple series just work automatically
|
46
|
-
|
47
|
-
```erb
|
48
|
-
<%= chart :line_chart, [[1,2,4],[2,3,8],[3,4,16],[4,5,32]], columns: ['x', 'Series 1', 'Series 2'] %>
|
49
|
-
```
|
50
|
-
|
51
|
-
No need to define columns if you don't want to
|
52
|
-
|
53
|
-
```erb
|
54
|
-
<%= chart :line_chart, [[1,2,4],[2,3,8],[3,4,16],[4,5,32]] %>
|
55
|
-
```
|
56
|
-
|
57
|
-
:sparkles: Now brand new: Instead of actual data you can just provide an URL from where the data will be retrieved via an Ajax Get request
|
58
|
-
|
59
|
-
```erb
|
60
|
-
<%= chart :line_chart, '/api/line-chart-data' %>
|
61
|
-
```
|
62
|
-
|
63
|
-
If you want to use times or dates, do so. They have to be a time or date object!
|
64
|
-
|
65
|
-
|
66
|
-
```erb
|
67
|
-
<%= line_chart({20.day.ago => 5, Time.at(1368174456) => 4, Time.parse("2013-05-07 00:00:00 UTC") => 7, Date.new(1999,12,24) => 9}) %>
|
17
|
+
```ruby
|
18
|
+
chart :line_chart, [{y: 23, x: 42}, {y: 666, x: 999}]
|
19
|
+
chart :line_chart, [[23, 42], [666, 999]], columns: ['x', 'y']
|
20
|
+
chart :line_chart, [[23, 42], [666, 999]], columns: ['x', 'y'], style: 'width:100%;'
|
21
|
+
chart :line_chart, [[1,2,4],[2,3,8],[3,4,16],[4,5,32]]
|
22
|
+
chart :line_chart, User.group_by_day(:created_at).count
|
23
|
+
chart :bar_chart, [['x', 'y'],[23, 42], [666, 999]]
|
24
|
+
chart :pie_chart, Goal.group(:name).count
|
25
|
+
chart :geo_map, [{'Country'=>'Germany', 'Population'=>8600000}, {'Country'=>'France', 'Population'=>6500000}]
|
26
|
+
chart :line_chart,
|
27
|
+
[[0, nil, nil, 5], [1, 'foo', 'Foobar', 2], [2, nil, nil, 6], [3, 'bar', 'Barfoo', 3], [4, nil, nil, 8]],
|
28
|
+
columns: ['y', {type: 'string', role: 'annotation'}, {type: 'string', role: 'annotationText'}, 'foo'],
|
29
|
+
options: {annotations: {style: 'line'}}
|
30
|
+
chart :pie_chart, '/api/pie-chart-data'
|
68
31
|
|
69
32
|
```
|
70
33
|
|
71
|
-
|
72
34
|
## Installation
|
73
35
|
|
74
36
|
Add this line to your application's Gemfile:
|
data/lib/swagchart/helper.rb
CHANGED
@@ -19,7 +19,7 @@ module Swagchart
|
|
19
19
|
data = data.to_a if data.is_a?(Hash)
|
20
20
|
if opts[:columns]
|
21
21
|
opts[:columns] = opts[:columns].split(',').map(&:strip) if opts[:columns].is_a?(String)
|
22
|
-
data.unshift opts[:columns]
|
22
|
+
data.unshift opts[:columns] unless data.is_a?(String)
|
23
23
|
end
|
24
24
|
chart_id = ERB::Util.html_escape(opts.delete(:chart_id) || "chart_#{SecureRandom.uuid}")
|
25
25
|
style = 'height:320px;' # dirty hack right here .. you can override that with your style though
|
@@ -40,16 +40,14 @@ module Swagchart
|
|
40
40
|
str.split('_').each(&:capitalize!).join('')
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
js << '}}};console.log(data);'
|
52
|
-
js
|
43
|
+
def jsapi_includes_template
|
44
|
+
html = "<script type='text/javascript'>"
|
45
|
+
html << "google.load('visualization', '1');"
|
46
|
+
html << "google.load('visualization', '1', {packages: ["
|
47
|
+
html << "'corechart', 'geochart', 'map', 'treemap', 'annotatedtimeline','sankey', 'orgchart', 'calendar', 'gauge', 'timeline'"
|
48
|
+
html << ']});'
|
49
|
+
html << '</script>'
|
50
|
+
html
|
53
51
|
end
|
54
52
|
|
55
53
|
def chart_template(opts = {})
|
@@ -82,14 +80,17 @@ module Swagchart
|
|
82
80
|
js
|
83
81
|
end
|
84
82
|
|
85
|
-
def
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
83
|
+
def autocast_data_template(opts = {})
|
84
|
+
js = ''
|
85
|
+
js << 'if(Array.isArray(data) && !Array.isArray(data[0])){'
|
86
|
+
js << 'var keys=[], vals=[], row=[]; for(var k in data[0]){keys.push(k)}; for(var d in data){row=[]; for(var k in keys){row.push(data[d][keys[k]])}; vals.push(row)}; vals.unshift(keys); data = vals;'
|
87
|
+
js << '}'
|
88
|
+
js << 'else{data.unshift(Array(data[0].length).join(".").split("."));}' unless opts[:columns]
|
89
|
+
js << "data.unshift(#{opts[:columns].to_json});" if opts[:columns]
|
90
|
+
js << "for(var i=0;i<data.length;i++){for(var j=0;j<data[i].length;j++){if(typeof data[i][j] === 'string'){"
|
91
|
+
js << 'var pd = Date.parse(data[i][j]); if(!isNaN(pd)){data[i][j] = new Date(pd)};'
|
92
|
+
js << '}}};'
|
93
|
+
js
|
93
94
|
end
|
94
95
|
end
|
95
96
|
end
|
data/lib/swagchart/version.rb
CHANGED
data/swagchart-1.2.0.gem
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swagchart
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pachacamac
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,6 +72,7 @@ files:
|
|
72
72
|
- lib/swagchart/rails.rb
|
73
73
|
- lib/swagchart/sinatra.rb
|
74
74
|
- lib/swagchart/version.rb
|
75
|
+
- swagchart-1.2.0.gem
|
75
76
|
- swagchart.gemspec
|
76
77
|
- test/swagchart_test.rb
|
77
78
|
- test/test_helper.rb
|