iruby-chartkick 0.1.0 → 0.2.0

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
  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: {}