chartkick-remote 1.0.2 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -9
- data/chartkick_remote.gemspec +13 -13
- data/lib/chartkick/remote/helper.rb +11 -10
- data/lib/chartkick/remote/version.rb +1 -1
- metadata +43 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b23f76a69dd77e75b2e4a692ecfb52dc48273c63
|
4
|
+
data.tar.gz: d2eed42d77b27092177b8fc6d4da6d38bb3b9d08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba0639eda196a091f434ae52a6603f3e8a78f5a806d43b4a8f01256069685551560b6be29d56ef19c354619a76b4daa5ebc19972c27ed07939b41f4497e729ad
|
7
|
+
data.tar.gz: 004a0af71d3e2bc386dea0caa3e66e0c7e61cbaf6e73b7973acd2e5a41cd7bd35011ba7ff3edec45f099a460cd6a14fa00a124f0e3a81e77a3eda1dc47447a65
|
data/README.md
CHANGED
@@ -1,12 +1,9 @@
|
|
1
|
-
# Chartkick Remote
|
2
|
-
|
3
|
-
[![Travis CI Status](https://travis-ci.org/dontfidget/chartkick-remote.svg?branch=master)](https://travis-ci.org/dontfidget/chartkick-remote)
|
4
|
-
|
5
|
-
[![Code Climate](https://codeclimate.com/github/dontfidget/chartkick-remote.png)](https://codeclimate.com/github/dontfidget/chartkick-remote)
|
1
|
+
# Chartkick Remote [![Travis CI Status](https://travis-ci.org/dontfidget/chartkick-remote.png?branch=master)](https://travis-ci.org/dontfidget/chartkick-remote) [![Code Climate](https://codeclimate.com/github/dontfidget/chartkick-remote.png)](https://codeclimate.com/github/dontfidget/chartkick-remote) [![Code Climate](https://codeclimate.com/github/dontfidget/chartkick-remote/coverage.png)](https://codeclimate.com/github/dontfidget/chartkick-remote)
|
6
2
|
|
7
3
|
## Usage
|
8
4
|
|
9
|
-
This is an add-on to ankane's Chartkick to allow the user to specify chart data in a block and have it automatically sourced remotely to avoid making too many queries in the original page render.
|
5
|
+
This is an add-on to ankane's Chartkick to allow the user to specify chart data in a block and have it automatically sourced remotely to avoid making too many queries in the original page render. Check out the demo at http://chartkick-remote-demo.heroku.com.
|
6
|
+
|
10
7
|
|
11
8
|
For more on the fabulous Chartkick library, see http://ankane.github.io/chartkick/.
|
12
9
|
|
@@ -53,7 +50,7 @@ First, set up 'chartkick' as described at http://ankane.github.io/chartkick/.
|
|
53
50
|
|
54
51
|
Then, add this line to your application's Gemfile:
|
55
52
|
|
56
|
-
```
|
53
|
+
```ruby
|
57
54
|
gem 'chartkick-remote'
|
58
55
|
```
|
59
56
|
|
@@ -68,10 +65,15 @@ This gem works by *not* executing "remote" blocks when initially rendering your
|
|
68
65
|
|
69
66
|
Using this methodology, it's easy to write a page that makes many, many json requests, which may swamp your server and possibly even time out if you have a global `timeout` value set for your ajax requests. @maccman's jquery.ajax.queue.coffee script provides a basic queueing transport layer for ajax requests which I've modified to provide an option to set the maximum number of requests that can be made in parallel (see https://gist.github.com/dontfidget/1ad9ab33971b64fe6fef). If you include the javascript in this gist on your page, you can then specify the maximum number of allowable requests globally for your page as follows:
|
70
67
|
|
71
|
-
```
|
68
|
+
```javascript
|
72
69
|
$.ajaxSetup({queue: true, queueMaxConcurrency: 2});
|
73
70
|
```
|
74
71
|
|
72
|
+
## Standalone Mode (for debugging)
|
75
73
|
|
76
|
-
|
74
|
+
Sometimes it's useful to be able to be able to debug a single chart at a time even though there may be several on the page. Use the `standalone` option to add a link to each chart that opens the page in standalone mode, where only the single chart is shown.
|
75
|
+
|
76
|
+
```ruby
|
77
|
+
chartkick_remote standalone: true
|
78
|
+
```
|
77
79
|
|
data/chartkick_remote.gemspec
CHANGED
@@ -10,24 +10,24 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["andrew@dontfidget.com"]
|
11
11
|
spec.description = %q{Automatically generate remote json for chartkick}
|
12
12
|
spec.summary = %q{Automatically generate remote json for chartkick}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/dontfidget/chartkick-remote"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
|
+
spec.required_ruby_version = '>= 1.9'
|
20
21
|
|
21
|
-
spec.add_development_dependency "bundler",
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "
|
24
|
-
spec.add_development_dependency "
|
25
|
-
spec.add_development_dependency "
|
26
|
-
spec.add_development_dependency "rspec"
|
27
|
-
spec.add_development_dependency "
|
28
|
-
spec.add_development_dependency "pry"
|
29
|
-
spec.add_development_dependency "
|
30
|
-
spec.add_development_dependency "
|
31
|
-
spec.add_development_dependency "
|
32
|
-
spec.add_development_dependency "rspec-html-matchers"
|
22
|
+
spec.add_development_dependency "bundler", '~> 1.3'
|
23
|
+
spec.add_development_dependency "rake", '~> 10.3'
|
24
|
+
spec.add_development_dependency "chartkick", '~> 1.2'
|
25
|
+
spec.add_development_dependency "activesupport", '~> 4.1'
|
26
|
+
spec.add_development_dependency "rspec", '~> 3.0'
|
27
|
+
spec.add_development_dependency "rspec-rails", '~> 3.0'
|
28
|
+
spec.add_development_dependency "pry", '~> 0'
|
29
|
+
spec.add_development_dependency "pry-doc", '~> 0'
|
30
|
+
spec.add_development_dependency "travis-lint", '~> 1.8'
|
31
|
+
spec.add_development_dependency "codeclimate-test-reporter", '~> 0.3'
|
32
|
+
spec.add_development_dependency "rspec-html-matchers", '~> 0.6.1', '>= 0.6.1'
|
33
33
|
end
|
@@ -30,22 +30,23 @@ module Chartkick::Remote
|
|
30
30
|
if remote
|
31
31
|
@remote_chart_id = (@remote_chart_id || 0) + 1
|
32
32
|
chart_id = controller.params[:_chartkick_remote_chart_id]
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
33
|
+
skip = params[:_chartkick_remote_standalone] && chart_id.to_s != @remote_chart_id.to_s
|
34
|
+
controller.chartkick_remote_blocks ||= {}
|
35
|
+
controller.chartkick_remote_blocks[@remote_chart_id] = block
|
36
|
+
data_source = url_for(params.
|
37
|
+
except(:_chartkick_remote_standalone).
|
38
|
+
merge(_chartkick_remote_chart_id: @remote_chart_id, format: :json))
|
40
39
|
elsif block_given?
|
41
40
|
data_source = block.call
|
42
41
|
end
|
43
42
|
|
44
|
-
|
43
|
+
if skip
|
44
|
+
result = '<div>Skipped</div>'.html_safe
|
45
|
+
else
|
46
|
+
result = send(:"#{type}_without_remote", data_source, options)
|
47
|
+
end
|
45
48
|
|
46
49
|
if remote && standalone
|
47
|
-
result = '<div>Skipped</div>'.html_safe if skip
|
48
|
-
|
49
50
|
standalone_link = link_to 'Standalone',
|
50
51
|
url_for(params.merge(_chartkick_remote_chart_id: @remote_chart_id,
|
51
52
|
_chartkick_remote_standalone: 1))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chartkick-remote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew S. Brown
|
@@ -28,156 +28,148 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '10.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: minitest
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
40
|
+
version: '10.3'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: chartkick
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
|
-
- - "
|
45
|
+
- - "~>"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
47
|
+
version: '1.2'
|
62
48
|
type: :development
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- - "
|
52
|
+
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
54
|
+
version: '1.2'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: activesupport
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- - "
|
59
|
+
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
61
|
+
version: '4.1'
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
|
-
- - "
|
66
|
+
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
68
|
+
version: '4.1'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: rspec
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- - "
|
73
|
+
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
75
|
+
version: '3.0'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- - "
|
80
|
+
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
82
|
+
version: '3.0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rspec-rails
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
|
-
- - "
|
87
|
+
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
89
|
+
version: '3.0'
|
104
90
|
type: :development
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
|
-
- - "
|
94
|
+
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
96
|
+
version: '3.0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: pry
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
|
-
- - "
|
101
|
+
- - "~>"
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
|
-
- - "
|
108
|
+
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: '0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: pry-doc
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
|
-
- - "
|
115
|
+
- - "~>"
|
130
116
|
- !ruby/object:Gem::Version
|
131
117
|
version: '0'
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
|
-
- - "
|
122
|
+
- - "~>"
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: travis-lint
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
|
-
- - "
|
129
|
+
- - "~>"
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
131
|
+
version: '1.8'
|
146
132
|
type: :development
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
|
-
- - "
|
136
|
+
- - "~>"
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
138
|
+
version: '1.8'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: codeclimate-test-reporter
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
156
142
|
requirements:
|
157
|
-
- - "
|
143
|
+
- - "~>"
|
158
144
|
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
145
|
+
version: '0.3'
|
160
146
|
type: :development
|
161
147
|
prerelease: false
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
|
-
- - "
|
150
|
+
- - "~>"
|
165
151
|
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
152
|
+
version: '0.3'
|
167
153
|
- !ruby/object:Gem::Dependency
|
168
154
|
name: rspec-html-matchers
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
170
156
|
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.6.1
|
171
160
|
- - ">="
|
172
161
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
162
|
+
version: 0.6.1
|
174
163
|
type: :development
|
175
164
|
prerelease: false
|
176
165
|
version_requirements: !ruby/object:Gem::Requirement
|
177
166
|
requirements:
|
167
|
+
- - "~>"
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: 0.6.1
|
178
170
|
- - ">="
|
179
171
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
172
|
+
version: 0.6.1
|
181
173
|
description: Automatically generate remote json for chartkick
|
182
174
|
email:
|
183
175
|
- andrew@dontfidget.com
|
@@ -200,7 +192,7 @@ files:
|
|
200
192
|
- spec/controllers/views/anonymous/index.html.erb
|
201
193
|
- spec/helpers/helper_spec.rb
|
202
194
|
- spec/spec_helper.rb
|
203
|
-
homepage:
|
195
|
+
homepage: https://github.com/dontfidget/chartkick-remote
|
204
196
|
licenses:
|
205
197
|
- MIT
|
206
198
|
metadata: {}
|
@@ -212,7 +204,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
212
204
|
requirements:
|
213
205
|
- - ">="
|
214
206
|
- !ruby/object:Gem::Version
|
215
|
-
version: '
|
207
|
+
version: '1.9'
|
216
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
209
|
requirements:
|
218
210
|
- - ">="
|