swagchart 1.2.0 → 1.2.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.
- 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
|