google_visualr 2.2.0 → 2.3.0
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.markdown +5 -0
- data/lib/google_visualr/app/helpers/view_helper.rb +10 -8
- data/lib/google_visualr/base_chart.rb +22 -4
- data/lib/google_visualr/version.rb +1 -1
- data/spec/google_visualr/app/helpers/view_helper_spec.rb +5 -3
- data/spec/google_visualr/base_chart_spec.rb +1 -0
- data/spec/google_visualr/data_table_spec.rb +2 -2
- data/spec/support/common.rb +9 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c619ef5e478b69cae31b6633f12bd0538ae28d1f
|
4
|
+
data.tar.gz: c8b933d1ab6b6fd1f8d6ffee52d510b4f63ff5d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0709add89f814b1af09c975333cfe3beacda8dd989e300388d341d5c7a14de18198265c55cdf8e7d85b50dc8636cb9909b4bd786f5dbfaf49f7e44e116ce0e63
|
7
|
+
data.tar.gz: b19ad8a044a5a91916d51c745d4f1b42b54e6dfb1851b1f59be2c9aef924f64d5d775929754e9d0e5c2ce898f87c92c576f9d0efa78e95009439cf211a501239
|
data/README.markdown
CHANGED
@@ -88,6 +88,11 @@ I would like to collect some data about who's using this Gem. [Please drop me a
|
|
88
88
|
|
89
89
|
## Change Log
|
90
90
|
|
91
|
+
<em>Version 2.3.0</em>
|
92
|
+
|
93
|
+
* [Issue 69](https://github.com/winston/google_visualr/pull/69) Support generating chart Javascript without <script> tag
|
94
|
+
* Split `base_chart#to_js` into 3 methods - `to_js`, `load_js` and `draw_js` which can be used on their own.
|
95
|
+
|
91
96
|
<em>Version 2.2.0</em>
|
92
97
|
|
93
98
|
* [Issue 64](https://github.com/winston/google_visualr/pull/64) Works with Turbolinks.
|
@@ -1,21 +1,23 @@
|
|
1
1
|
module GoogleVisualr
|
2
|
-
|
3
2
|
module Rails
|
4
|
-
|
5
3
|
module ViewHelper
|
6
|
-
|
7
4
|
extend ActiveSupport::Concern
|
8
5
|
|
9
6
|
included do
|
10
7
|
helper_method "render_chart"
|
11
8
|
end
|
12
9
|
|
13
|
-
def render_chart(chart, dom)
|
14
|
-
|
10
|
+
def render_chart(chart, dom, options={})
|
11
|
+
script_tag = options.fetch(:script_tag) { true }
|
12
|
+
if script_tag
|
13
|
+
chart.to_js(dom).html_safe
|
14
|
+
else
|
15
|
+
html = ""
|
16
|
+
html << chart.load_js(dom)
|
17
|
+
html << chart.draw_js(dom)
|
18
|
+
html.html_safe
|
19
|
+
end
|
15
20
|
end
|
16
|
-
|
17
21
|
end
|
18
|
-
|
19
22
|
end
|
20
|
-
|
21
23
|
end
|
@@ -36,10 +36,29 @@ module GoogleVisualr
|
|
36
36
|
#
|
37
37
|
# Parameters:
|
38
38
|
# *div_id [Required] The ID of the DIV element that the Google Chart should be rendered in.
|
39
|
-
|
40
39
|
def to_js(element_id)
|
41
|
-
js
|
42
|
-
js << "\n
|
40
|
+
js = ""
|
41
|
+
js << "\n<script type='text/javascript'>"
|
42
|
+
js << load_js(element_id)
|
43
|
+
js << draw_js(element_id)
|
44
|
+
js << "\n</script>"
|
45
|
+
js
|
46
|
+
end
|
47
|
+
|
48
|
+
# Generates JavaScript for loading the appropriate Google Visualization package, with callback to render chart.
|
49
|
+
#
|
50
|
+
# Parameters:
|
51
|
+
# *div_id [Required] The ID of the DIV element that the Google Chart should be rendered in.
|
52
|
+
def load_js(element_id)
|
53
|
+
"\n google.load('visualization','1', {packages: ['#{package_name}'], callback: #{chart_function_name(element_id)}});"
|
54
|
+
end
|
55
|
+
|
56
|
+
# Generates JavaScript function for rendering the chart.
|
57
|
+
#
|
58
|
+
# Parameters:
|
59
|
+
# *div_id [Required] The ID of the DIV element that the Google Chart should be rendered in.
|
60
|
+
def draw_js(element_id)
|
61
|
+
js = ""
|
43
62
|
js << "\n function #{chart_function_name(element_id)}() {"
|
44
63
|
js << "\n #{@data_table.to_js}"
|
45
64
|
js << "\n var chart = new google.visualization.#{chart_name}(document.getElementById('#{element_id}'));"
|
@@ -48,7 +67,6 @@ module GoogleVisualr
|
|
48
67
|
end
|
49
68
|
js << "\n chart.draw(data_table, #{js_parameters(@options)});"
|
50
69
|
js << "\n };"
|
51
|
-
js << "\n</script>"
|
52
70
|
js
|
53
71
|
end
|
54
72
|
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "ApplicationController" do
|
4
|
-
|
5
4
|
describe "#render_chart" do
|
6
|
-
|
7
5
|
it "has method" do
|
8
6
|
ApplicationController.instance_methods.should include :render_chart
|
9
7
|
end
|
@@ -18,6 +16,10 @@ describe "ApplicationController" do
|
|
18
16
|
js.should == base_chart_js("div_chart")
|
19
17
|
end
|
20
18
|
|
19
|
+
it "returns html_safe javascript without script tag" do
|
20
|
+
controller = ApplicationController.new
|
21
|
+
js = controller.render_chart base_chart, "div_chart", script_tag: false
|
22
|
+
js.should == base_chart_js_without_script_tag("div_chart")
|
23
|
+
end
|
21
24
|
end
|
22
|
-
|
23
25
|
end
|
@@ -209,14 +209,14 @@ describe GoogleVisualr::DataTable do
|
|
209
209
|
it "accepts BigDecimal as number" do
|
210
210
|
expect {
|
211
211
|
dt.set_cell(0, 1, BigDecimal.new(42))
|
212
|
-
}.to_not raise_exception
|
212
|
+
}.to_not raise_exception
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
216
216
|
it "accepts 'nil' for all column types" do
|
217
217
|
expect {
|
218
218
|
dt.set_cell(0, 0, nil)
|
219
|
-
}.to_not raise_exception
|
219
|
+
}.to_not raise_exception
|
220
220
|
end
|
221
221
|
end
|
222
222
|
|
data/spec/support/common.rb
CHANGED
@@ -17,18 +17,23 @@ def base_chart(data_table=data_table)
|
|
17
17
|
GoogleVisualr::BaseChart.new(data_table, { :legend => "Test Chart", :width => 800, :is3D => true })
|
18
18
|
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
js
|
20
|
+
|
21
|
+
def base_chart_js_without_script_tag(div_class="div_class")
|
22
|
+
js = "\n google.load('visualization','1', {packages: ['basechart'], callback: draw_#{div_class}});"
|
23
23
|
js << "\n function draw_#{div_class}() {"
|
24
24
|
js << "\n var data_table = new google.visualization.DataTable();data_table.addColumn({\"type\":\"string\",\"label\":\"Year\"});data_table.addColumn({\"type\":\"number\",\"label\":\"Sales\"});data_table.addColumn({\"type\":\"number\",\"label\":\"Expenses\"});data_table.addRow([{v: \"2004\"}, {v: 1000}, {v: 400}]);data_table.addRow([{v: \"2005\"}, {v: 1200}, {v: 450}]);data_table.addRow([{v: \"2006\"}, {v: 1500}, {v: 600}]);data_table.addRow([{v: \"2007\"}, {v: 800}, {v: 500}]);\n var chart = new google.visualization.BaseChart(document.getElementById('#{div_class}'));"
|
25
25
|
js << "\n chart.draw(data_table, {legend: \"Test Chart\", width: 800, is3D: true});"
|
26
26
|
js << "\n };"
|
27
|
+
end
|
28
|
+
|
29
|
+
def base_chart_js(div_class="div_class")
|
30
|
+
js = "\n<script type='text/javascript'>"
|
31
|
+
js << base_chart_js_without_script_tag(div_class)
|
27
32
|
js << "\n</script>"
|
28
33
|
end
|
29
34
|
|
30
35
|
def base_chart_with_listener_js(div_class="div_class")
|
31
|
-
js =
|
36
|
+
js = "\n<script type='text/javascript'>"
|
32
37
|
js << "\n google.load('visualization','1', {packages: ['basechart'], callback: draw_#{div_class}});"
|
33
38
|
js << "\n function draw_#{div_class}() {"
|
34
39
|
js << "\n var data_table = new google.visualization.DataTable();data_table.addColumn({\"type\":\"string\",\"label\":\"Year\"});data_table.addColumn({\"type\":\"number\",\"label\":\"Sales\"});data_table.addColumn({\"type\":\"number\",\"label\":\"Expenses\"});data_table.addRow([{v: \"2004\"}, {v: 1000}, {v: 400}]);data_table.addRow([{v: \"2005\"}, {v: 1200}, {v: 450}]);data_table.addRow([{v: \"2006\"}, {v: 1500}, {v: 600}]);data_table.addRow([{v: \"2007\"}, {v: 800}, {v: 500}]);\n var chart = new google.visualization.BaseChart(document.getElementById('#{div_class}'));"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_visualr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Winston Teo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|