chartkick 4.0.5 → 4.1.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/CHANGELOG.md +6 -0
- data/README.md +57 -29
- data/config/importmap.rb +1 -0
- data/lib/chartkick/engine.rb +9 -0
- data/lib/chartkick/helper.rb +1 -0
- data/lib/chartkick/version.rb +1 -1
- data/vendor/assets/javascripts/chartkick.js +4 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea8884a2d48b14492533dfb048fceba992f579b711d02576df6d998188068d6c
|
4
|
+
data.tar.gz: 1b918716b088e33d8a58e4bcb1669f79de634b8103ecef7d71c205a712eea0e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afeb7f5d6339440e986b33e12130bb06e58c54eb1044cd30cbd4773efe01afe1ee376356fdca8659352290d36ec5d2d0169d023c698bd2e6f5a416409b91f9de
|
7
|
+
data.tar.gz: 4a09e32c9a78eec5c3e0fd7bdd50badde15bb19831786cd3541a9920eb8c5407bebd8fd6752ad30a00ce7a067f5bbdaa88cb017f1ba29b8f73039d749ff51d4e
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -39,6 +39,13 @@ For Rails 5 / Sprockets, in `app/assets/javascripts/application.js`, add:
|
|
39
39
|
//= require Chart.bundle
|
40
40
|
```
|
41
41
|
|
42
|
+
For Rails 7 / Importmap (experimental), in `app/javascript/application.js`, add:
|
43
|
+
|
44
|
+
```js
|
45
|
+
import "chartkick"
|
46
|
+
import "Chart.bundle"
|
47
|
+
```
|
48
|
+
|
42
49
|
This sets up Chartkick with [Chart.js](https://www.chartjs.org/). For other charting libraries, see [detailed instructions](#installation).
|
43
50
|
|
44
51
|
## Charts
|
@@ -98,9 +105,10 @@ Timeline - *Google Charts*
|
|
98
105
|
Multiple series
|
99
106
|
|
100
107
|
```erb
|
101
|
-
<%= line_chart
|
102
|
-
|
103
|
-
}
|
108
|
+
<%= line_chart [
|
109
|
+
{name: "Workout", data: {"2021-01-01" => 3, "2021-01-02" => 4}},
|
110
|
+
{name: "Call parents", data: {"2021-01-01" => 5, "2021-01-02" => 3}}
|
111
|
+
] %>
|
104
112
|
```
|
105
113
|
|
106
114
|
or
|
@@ -109,7 +117,23 @@ or
|
|
109
117
|
<%= line_chart Feat.group(:goal_id).group_by_week(:created_at).count %>
|
110
118
|
```
|
111
119
|
|
112
|
-
|
120
|
+
## Data
|
121
|
+
|
122
|
+
Data can be a hash, array, or URL.
|
123
|
+
|
124
|
+
#### Hash
|
125
|
+
|
126
|
+
```erb
|
127
|
+
<%= line_chart({"2021-01-01" => 2, "2021-01-02" => 3}) %>
|
128
|
+
```
|
129
|
+
|
130
|
+
#### Array
|
131
|
+
|
132
|
+
```erb
|
133
|
+
<%= line_chart [["2021-01-01", 2], ["2021-01-02", 3]] %>
|
134
|
+
```
|
135
|
+
|
136
|
+
#### URL
|
113
137
|
|
114
138
|
Make your pages load super fast and stop worrying about timeouts. Give each chart its own endpoint.
|
115
139
|
|
@@ -133,7 +157,7 @@ For multiple series, add `chart_json` at the end.
|
|
133
157
|
render json: Task.group(:goal_id).group_by_day(:completed_at).count.chart_json
|
134
158
|
```
|
135
159
|
|
136
|
-
|
160
|
+
## Options
|
137
161
|
|
138
162
|
Id, width, and height
|
139
163
|
|
@@ -330,30 +354,6 @@ For Padrino, use `yield_content` instead of `yield`.
|
|
330
354
|
|
331
355
|
This is great for including all of your JavaScript at the bottom of the page.
|
332
356
|
|
333
|
-
### Data
|
334
|
-
|
335
|
-
Pass data as a hash or array
|
336
|
-
|
337
|
-
```erb
|
338
|
-
<%= pie_chart({"Football" => 10, "Basketball" => 5}) %>
|
339
|
-
<%= pie_chart [["Football", 10], ["Basketball", 5]] %>
|
340
|
-
```
|
341
|
-
|
342
|
-
For multiple series, use the format
|
343
|
-
|
344
|
-
```erb
|
345
|
-
<%= line_chart [
|
346
|
-
{name: "Series A", data: series_a},
|
347
|
-
{name: "Series B", data: series_b}
|
348
|
-
] %>
|
349
|
-
```
|
350
|
-
|
351
|
-
Times can be a time or a string (strings are parsed)
|
352
|
-
|
353
|
-
```erb
|
354
|
-
<%= line_chart({20.day.ago => 5, "2021-05-07 00:00:00 UTC" => 7}) %>
|
355
|
-
```
|
356
|
-
|
357
357
|
### Multiple Series
|
358
358
|
|
359
359
|
You can pass a few options with a series:
|
@@ -440,6 +440,13 @@ For Rails 5 / Sprockets, in `app/assets/javascripts/application.js`, add:
|
|
440
440
|
//= require Chart.bundle
|
441
441
|
```
|
442
442
|
|
443
|
+
For Rails 7 / Importmap (experimental), in `app/javascript/application.js`, add:
|
444
|
+
|
445
|
+
```js
|
446
|
+
import "chartkick"
|
447
|
+
import "Chart.bundle"
|
448
|
+
```
|
449
|
+
|
443
450
|
### Google Charts
|
444
451
|
|
445
452
|
In your layout or views, add:
|
@@ -466,6 +473,12 @@ For Rails 5 / Sprockets, in `app/assets/javascripts/application.js`, add:
|
|
466
473
|
//= require chartkick
|
467
474
|
```
|
468
475
|
|
476
|
+
For Rails 7 / Importmap (experimental), in `app/javascript/application.js`, add:
|
477
|
+
|
478
|
+
```js
|
479
|
+
import "chartkick"
|
480
|
+
```
|
481
|
+
|
469
482
|
To specify a language or Google Maps API key, use:
|
470
483
|
|
471
484
|
```js
|
@@ -495,6 +508,21 @@ For Rails 5 / Sprockets, download [highcharts.js](https://code.highcharts.com/hi
|
|
495
508
|
//= require highcharts
|
496
509
|
```
|
497
510
|
|
511
|
+
For Rails 7 / Importmap (experimental), run:
|
512
|
+
|
513
|
+
```sh
|
514
|
+
bin/importmap pin highcharts --download
|
515
|
+
```
|
516
|
+
|
517
|
+
And in `app/javascript/application.js`, add:
|
518
|
+
|
519
|
+
```js
|
520
|
+
import "chartkick"
|
521
|
+
import Highcharts from "highcharts"
|
522
|
+
|
523
|
+
window.Highcharts = Highcharts
|
524
|
+
```
|
525
|
+
|
498
526
|
### Sinatra and Padrino
|
499
527
|
|
500
528
|
Download [chartkick.js](https://raw.githubusercontent.com/ankane/chartkick/master/vendor/assets/javascripts/chartkick.js) and include it manually.
|
data/config/importmap.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pin_all_from File.expand_path("../vendor/assets/javascripts", __dir__)
|
data/lib/chartkick/engine.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
module Chartkick
|
2
2
|
class Engine < ::Rails::Engine
|
3
3
|
# for assets
|
4
|
+
|
5
|
+
# for importmap
|
6
|
+
if defined?(Importmap)
|
7
|
+
initializer "chartkick.importmap", after: "importmap" do |app|
|
8
|
+
app.importmap.draw(Engine.root.join("config/importmap.rb"))
|
9
|
+
app.config.assets.precompile << "chartkick.js"
|
10
|
+
app.config.assets.precompile << "Chart.bundle.js"
|
11
|
+
end
|
12
|
+
end
|
4
13
|
end
|
5
14
|
end
|
data/lib/chartkick/helper.rb
CHANGED
@@ -117,6 +117,7 @@ module Chartkick
|
|
117
117
|
<script#{nonce_html}>
|
118
118
|
(function() {
|
119
119
|
if (document.documentElement.hasAttribute("data-turbolinks-preview")) return;
|
120
|
+
if (document.documentElement.hasAttribute("data-turbo-preview")) return;
|
120
121
|
|
121
122
|
var createChart = function() { #{createjs} };
|
122
123
|
if ("Chartkick" in window) {
|
data/lib/chartkick/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* Chartkick.js
|
3
3
|
* Create beautiful charts with one line of JavaScript
|
4
4
|
* https://github.com/ankane/chartkick.js
|
5
|
-
* v4.0
|
5
|
+
* v4.1.0
|
6
6
|
* MIT License
|
7
7
|
*/
|
8
8
|
|
@@ -2495,6 +2495,9 @@
|
|
2495
2495
|
document.addEventListener("turbolinks:before-render", function() {
|
2496
2496
|
Chartkick.destroyAll();
|
2497
2497
|
});
|
2498
|
+
document.addEventListener("turbo:before-render", function() {
|
2499
|
+
Chartkick.destroyAll();
|
2500
|
+
});
|
2498
2501
|
|
2499
2502
|
// use setTimeout so charting library can come later in same JS file
|
2500
2503
|
setTimeout(function() {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chartkick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: andrew@ankane.org
|
@@ -19,6 +19,7 @@ files:
|
|
19
19
|
- CHANGELOG.md
|
20
20
|
- LICENSE.txt
|
21
21
|
- README.md
|
22
|
+
- config/importmap.rb
|
22
23
|
- lib/chartkick.rb
|
23
24
|
- lib/chartkick/engine.rb
|
24
25
|
- lib/chartkick/enumerable.rb
|
@@ -50,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
51
|
- !ruby/object:Gem::Version
|
51
52
|
version: '0'
|
52
53
|
requirements: []
|
53
|
-
rubygems_version: 3.2.
|
54
|
+
rubygems_version: 3.2.22
|
54
55
|
signing_key:
|
55
56
|
specification_version: 4
|
56
57
|
summary: Create beautiful JavaScript charts with one line of Ruby
|