iruby-chartkick 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b39050caa3f7e3d2a9b1859b0a3ddd21c851eb9d0afc39e59e03364b2b61417
4
- data.tar.gz: b3fac3e8b089bc3dcf2766a84a7544a40b2f6bd569f652445db0bf291b979053
3
+ metadata.gz: a78992ca43fcea6c314ac7077715a188c746c70348421e1f250fe29c94d189cd
4
+ data.tar.gz: cb831487f58bd14401306e246c26bb64fec4747c00f90caca9be0f9a76c470da
5
5
  SHA512:
6
- metadata.gz: 4bb0ceffc6ce1d7a0febdc9c82ed4a75cb1b26c610f9e0d53654a232b6e26048a594a5a231e67e3c4dc8fc300311a0066d7372c81b354f1b6799042467f41892
7
- data.tar.gz: 391b51c7cfc00469515ab17b3dfbff7ac15b79580a47b249d396e5a37253a04017e0f5129eab568efa5f9e9c69ffd1b4f930b64b5775e98888d5a8490e64560f
6
+ metadata.gz: 3b26b52e8bb5cef58f5f08530836a1bce7a087d0d0613997c584c9637ff843d169697824085efe94653a88e679490ff5bd0e74ab4968e22992a6817d43d3a4e7
7
+ data.tar.gz: 5da7b82186832677bd1a1bbf6f9fa50a92855832998c128fb4c36dbbd8984a961586c427d0297f7ea3cfb45e979183e8bf370b25e901964f0f8b8de3ca1ec285
data/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # Changelog
2
+
3
+ ### HEAD (not released yet)
4
+
5
+ ### v0.2.0
6
+
7
+ * Support for area charts
8
+ * Support for scatter plots
9
+ * Support for timeline
10
+ * Support for geo charts
11
+ * Support for column charts
12
+ * Support keyword arguments for charts like heigth, width etc.
13
+
14
+ ### v0.1.0
15
+
16
+ * Initial version
17
+ * Support for line chart, bar chart and pie chart
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- iruby-chartkick (0.1.0)
4
+ iruby-chartkick (0.2.0)
5
5
  chartkick
6
6
  iruby
7
7
 
@@ -5,20 +5,45 @@ require "iruby/chartkick/version"
5
5
  require "iruby/chartkick/base_chart"
6
6
  require "iruby/chartkick/line_chart"
7
7
  require "iruby/chartkick/bar_chart"
8
+ require "iruby/chartkick/column_chart"
8
9
  require "iruby/chartkick/pie_chart"
10
+ require "iruby/chartkick/area_chart"
11
+ require "iruby/chartkick/scatter_chart"
12
+ require "iruby/chartkick/geo_chart"
13
+ require "iruby/chartkick/timeline"
9
14
 
10
15
  module IRuby
11
16
  module Chartkick
12
- def line_chart(data)
13
- LineChart.new(data).plot
17
+ def line_chart(data, **args)
18
+ LineChart.new(data).plot(**args)
14
19
  end
15
20
 
16
- def bar_chart(data)
17
- BarChart.new(data).plot
21
+ def bar_chart(data, **args)
22
+ BarChart.new(data).plot(**args)
18
23
  end
19
24
 
20
- def pie_chart(data)
21
- PieChart.new(data).plot
25
+ def column_chart(data, **args)
26
+ ColumnChart.new(data).plot(**args)
27
+ end
28
+
29
+ def pie_chart(data, **args)
30
+ PieChart.new(data).plot(**args)
31
+ end
32
+
33
+ def area_chart(data, **args)
34
+ AreaChart.new(data).plot(**args)
35
+ end
36
+
37
+ def scatter_chart(data, **args)
38
+ ScatterChart.new(data).plot(**args)
39
+ end
40
+
41
+ def geo_chart(data, **args)
42
+ GeoChart.new(data).plot(**args)
43
+ end
44
+
45
+ def timeline(data, **args)
46
+ Timeline.new(data).plot(**args)
22
47
  end
23
48
  end
24
49
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ module IRuby
3
+ module Chartkick
4
+ class AreaChart < IRuby::Chartkick::BaseChart
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + area_chart(@data, **ArgumentModifier[args, self]))
7
+ end
8
+ end
9
+ end
10
+ end
@@ -2,8 +2,8 @@
2
2
  module IRuby
3
3
  module Chartkick
4
4
  class BarChart < IRuby::Chartkick::BaseChart
5
- def plot
6
- ::IRuby.html(js_prefix + bar_chart(@data, id: randomized_dom_id))
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + bar_chart(@data, **ArgumentModifier[args, self]))
7
7
  end
8
8
  end
9
9
  end
@@ -4,19 +4,29 @@ module IRuby
4
4
  class BaseChart
5
5
  include ::Chartkick::Helper
6
6
 
7
+ ArgumentModifier = ->(args, callee) do
8
+ modified = args.inject({}) do |sum, item|
9
+ item.each do |k, v|
10
+ sum[k] = v
11
+ end
12
+ sum
13
+ end
14
+ modified[:id] = callee.randomized_dom_id
15
+ modified
16
+ end
17
+
7
18
  def initialize(data)
8
19
  @data = data
9
20
  end
10
21
 
11
22
  def js_prefix
12
- <<-JS
13
- <script type="text/javascript">
14
- #{adapter_javascript}
15
- </script>
16
- <script type="text/javascript">
17
- #{chartkick_javascript}
18
- </script>
19
- JS
23
+ javascripts.map do |js|
24
+ <<-JS
25
+ <script type="text/javascript">
26
+ #{js}
27
+ </script>
28
+ JS
29
+ end.join("\n")
20
30
  end
21
31
 
22
32
  def javascripts
@@ -27,7 +37,7 @@ module IRuby
27
37
  end
28
38
 
29
39
  def adapter_javascript
30
- adapter_js_path = File.join(File.dirname(__FILE__), "..", "..", "..", "vendor", "assets", "javascripts", "adapter.js")
40
+ adapter_js_path = File.join(File.dirname(__FILE__), "..", "..", "..", "vendor", "assets", "javascripts", "google_charts_loader.js")
31
41
  File.read(adapter_js_path)
32
42
  end
33
43
 
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ module IRuby
3
+ module Chartkick
4
+ class ColumnChart < IRuby::Chartkick::BaseChart
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + column_chart(@data, **ArgumentModifier[args, self]))
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ module IRuby
3
+ module Chartkick
4
+ class GeoChart < IRuby::Chartkick::BaseChart
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + geo_chart(@data, **ArgumentModifier[args, self]))
7
+ end
8
+ end
9
+ end
10
+ end
@@ -2,8 +2,8 @@
2
2
  module IRuby
3
3
  module Chartkick
4
4
  class LineChart < IRuby::Chartkick::BaseChart
5
- def plot
6
- ::IRuby.html(js_prefix + line_chart(@data, id: randomized_dom_id))
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + line_chart(@data, **ArgumentModifier[args, self]))
7
7
  end
8
8
  end
9
9
  end
@@ -2,8 +2,8 @@
2
2
  module IRuby
3
3
  module Chartkick
4
4
  class PieChart < IRuby::Chartkick::BaseChart
5
- def plot
6
- ::IRuby.html(js_prefix + pie_chart(@data, id: randomized_dom_id))
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + pie_chart(@data, **ArgumentModifier[args, self]))
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ module IRuby
3
+ module Chartkick
4
+ class ScatterChart < IRuby::Chartkick::BaseChart
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + scatter_chart(@data, **ArgumentModifier[args, self]))
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ module IRuby
3
+ module Chartkick
4
+ class Timeline < IRuby::Chartkick::BaseChart
5
+ def plot(*args)
6
+ ::IRuby.html(js_prefix + timeline(@data, **ArgumentModifier[args, self]))
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module IRuby
3
3
  module Chartkick
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iruby-chartkick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'Robin Neumann
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2019-10-31 00:00:00.000000000 Z
13
+ date: 2019-11-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: iruby
@@ -93,6 +93,7 @@ files:
93
93
  - ".rspec"
94
94
  - ".ruby-version"
95
95
  - ".travis.yml"
96
+ - CHANGELOG.md
96
97
  - Gemfile
97
98
  - Gemfile.lock
98
99
  - LICENSE.txt
@@ -102,13 +103,18 @@ files:
102
103
  - bin/setup
103
104
  - iruby-chartkick.gemspec
104
105
  - lib/iruby/chartkick.rb
106
+ - lib/iruby/chartkick/area_chart.rb
105
107
  - lib/iruby/chartkick/bar_chart.rb
106
108
  - lib/iruby/chartkick/base_chart.rb
109
+ - lib/iruby/chartkick/column_chart.rb
110
+ - lib/iruby/chartkick/geo_chart.rb
107
111
  - lib/iruby/chartkick/line_chart.rb
108
112
  - lib/iruby/chartkick/pie_chart.rb
113
+ - lib/iruby/chartkick/scatter_chart.rb
114
+ - lib/iruby/chartkick/timeline.rb
109
115
  - lib/iruby/chartkick/version.rb
110
- - vendor/assets/javascripts/adapter.js
111
116
  - vendor/assets/javascripts/chartkick.js
117
+ - vendor/assets/javascripts/google_charts_loader.js
112
118
  homepage: https://github.com/Absolventa/iruby-chartkick
113
119
  licenses: []
114
120
  metadata: {}