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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a0b90ec9a585d353f053ee64cf5c3e7cfa4f11fa
4
- data.tar.gz: 9d6698e336db48e4f0bdd24664331c203b8f7b94
3
+ metadata.gz: 361389686191b4ccf09b4bee58c0b4a36425ffad
4
+ data.tar.gz: 7ce73f89b87c6523c36c19eb8a0644108c9774d1
5
5
  SHA512:
6
- metadata.gz: f4f9bf2efd57e5d1b14249918b8580982f23754890f07aaec7b958b82720bad7e31f1777ca73ba2e9df1197da870740e0244d2af9e84dd6756b518fb729950d5
7
- data.tar.gz: b6517a1a50e024544766edb7af8b893f53555dc2bcc00c133bae3e244da98496c3e6f8c46dd7ba77c4b0baba960cc4842a6428af72c85ddd5daf30375d7c9b3f
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
- Line chart
18
-
19
- ```erb
20
- <%= chart :line_chart, User.group_by_day(:created_at).count %>
21
- ```
22
-
23
- Pie chart
24
-
25
- ```erb
26
- <%= chart 'PieChart', Goal.group(:name).count %>
27
- ```
28
-
29
- ### Data
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:
@@ -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 autocast_data_template(opts = {})
44
- js = ''
45
- js << 'if(Array.isArray(data) && !Array.isArray(data[0])){'
46
- 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;'
47
- js << '}'
48
- js << 'else{data.unshift(Array(data[0].length).join(".").split("."));}' unless opts[:columns]
49
- js << "for(var i=0;i<data.length;i++){for(var j=0;j<data[i].length;j++){if(typeof data[i][j] === 'string'){"
50
- js << 'var pd = Date.parse(data[i][j]); if(!isNaN(pd)){data[i][j] = new Date(pd)};'
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 jsapi_includes_template
86
- html = "<script type='text/javascript'>"
87
- html << "google.load('visualization', '1');"
88
- html << "google.load('visualization', '1', {packages: ["
89
- html << "'corechart', 'geochart', 'map', 'treemap', 'annotatedtimeline','sankey', 'orgchart', 'calendar', 'gauge', 'timeline'"
90
- html << ']});'
91
- html << '</script>'
92
- html
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
@@ -1,3 +1,3 @@
1
1
  module Swagchart
2
- VERSION = '1.2.0'.freeze
2
+ VERSION = '1.2.1'.freeze
3
3
  end
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.0
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-25 00:00:00.000000000 Z
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