apexcharts 0.1.4 → 0.1.5
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.md +231 -32
- data/lib/apexcharts.rb +3 -1
- data/lib/apexcharts/charts.rb +5 -0
- data/lib/apexcharts/charts/area.rb +3 -1
- data/lib/apexcharts/charts/bar.rb +3 -1
- data/lib/apexcharts/charts/base.rb +34 -0
- data/lib/apexcharts/charts/bubble.rb +7 -8
- data/lib/apexcharts/charts/candlestick.rb +9 -0
- data/lib/apexcharts/charts/cartesian.rb +15 -39
- data/lib/apexcharts/charts/column.rb +1 -1
- data/lib/apexcharts/charts/donut.rb +3 -1
- data/lib/apexcharts/charts/features/annotations.rb +1 -1
- data/lib/apexcharts/charts/features/mixable.rb +11 -0
- data/lib/apexcharts/charts/heatmap.rb +8 -3
- data/lib/apexcharts/charts/line.rb +3 -1
- data/lib/apexcharts/charts/mixed.rb +7 -25
- data/lib/apexcharts/charts/pie.rb +3 -1
- data/lib/apexcharts/charts/polar.rb +4 -33
- data/lib/apexcharts/charts/radar.rb +15 -0
- data/lib/apexcharts/charts/radial_bar.rb +3 -1
- data/lib/apexcharts/charts/scatter.rb +3 -1
- data/lib/apexcharts/charts/syncing.rb +3 -1
- data/lib/apexcharts/helper.rb +17 -6
- data/lib/apexcharts/options/annotations.rb +1 -1
- data/lib/apexcharts/options/axis.rb +4 -4
- data/lib/apexcharts/options/chart.rb +9 -7
- data/lib/apexcharts/options/data_labels.rb +5 -5
- data/lib/apexcharts/options/div_attributes.rb +1 -1
- data/lib/apexcharts/options/fill.rb +1 -1
- data/lib/apexcharts/options/grid.rb +3 -3
- data/lib/apexcharts/options/legend.rb +13 -13
- data/lib/apexcharts/options/markers.rb +7 -7
- data/lib/apexcharts/options/no_data.rb +4 -4
- data/lib/apexcharts/options/plot_options.rb +3 -2
- data/lib/apexcharts/options/root.rb +6 -6
- data/lib/apexcharts/options/states.rb +1 -1
- data/lib/apexcharts/options/stroke.rb +3 -3
- data/lib/apexcharts/options/subtitle.rb +1 -1
- data/lib/apexcharts/options/theme.rb +1 -1
- data/lib/apexcharts/options/title.rb +3 -3
- data/lib/apexcharts/options/tooltip.rb +5 -5
- data/lib/apexcharts/options/x_axis.rb +2 -2
- data/lib/apexcharts/options/y_axis.rb +5 -5
- data/lib/apexcharts/options_builder.rb +33 -32
- data/lib/apexcharts/renderer.rb +21 -0
- data/lib/apexcharts/series.rb +2 -0
- data/lib/apexcharts/series/bubble.rb +1 -1
- data/lib/apexcharts/series/cartesian.rb +14 -23
- data/lib/apexcharts/series/polar.rb +1 -1
- data/lib/apexcharts/support/rails.rb +3 -1
- data/lib/apexcharts/utils.rb +2 -0
- data/lib/apexcharts/utils/date_time.rb +1 -1
- data/lib/apexcharts/utils/hash.rb +7 -5
- data/lib/apexcharts/version.rb +4 -2
- metadata +52 -4
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'json' unless defined? JSON
|
4
|
+
|
5
|
+
class ApexCharts::Renderer
|
6
|
+
def self.render_default(options)
|
7
|
+
attributes = options.delete(:div) { {} }
|
8
|
+
variable = attributes.delete(:var) { "chart#{attributes[:id]&.[](/\d+/)}" }
|
9
|
+
element_id = attributes.delete(:id)
|
10
|
+
css_class = attributes.delete(:class)
|
11
|
+
height = "#{options[:chart][:height].to_i}px"
|
12
|
+
style = "height: #{height}; #{attributes.delete(:style)}"
|
13
|
+
html =<<~HTML
|
14
|
+
<div id="#{element_id}" class="#{css_class}" style="#{style}"></div>
|
15
|
+
<script type="text/javascript">
|
16
|
+
var #{variable} = new ApexCharts(document.querySelector("##{element_id}"), #{options.to_json});
|
17
|
+
#{variable}.render();
|
18
|
+
</script>
|
19
|
+
HTML
|
20
|
+
end
|
21
|
+
end
|
data/lib/apexcharts/series.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module ApexCharts
|
2
2
|
class CartesianSeries
|
3
3
|
attr_reader :sanitized
|
4
4
|
|
@@ -6,26 +6,20 @@ module Apexcharts
|
|
6
6
|
data = deep_copy(data)
|
7
7
|
@sanitized = case data
|
8
8
|
when Array
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
data
|
22
|
-
end
|
23
|
-
|
9
|
+
case first_data = data[0]
|
10
|
+
when Array
|
11
|
+
[
|
12
|
+
{
|
13
|
+
data: array_of_array_to_array_of_xy(data)
|
14
|
+
}
|
15
|
+
]
|
16
|
+
|
17
|
+
when Hash
|
18
|
+
if first_data[:data]
|
19
|
+
data.each{|h| h[:data] = array_of_array_to_array_of_xy(h[:data]) }
|
20
|
+
data
|
24
21
|
end
|
25
22
|
|
26
|
-
else
|
27
|
-
data.map(&:to_h)
|
28
|
-
|
29
23
|
end
|
30
24
|
|
31
25
|
when Hash
|
@@ -49,9 +43,7 @@ module Apexcharts
|
|
49
43
|
]
|
50
44
|
|
51
45
|
end
|
52
|
-
|
53
46
|
end
|
54
|
-
|
55
47
|
end
|
56
48
|
|
57
49
|
@sanitized = {series: @sanitized}
|
@@ -62,8 +54,7 @@ module Apexcharts
|
|
62
54
|
end
|
63
55
|
|
64
56
|
def array_of_pairs?(data)
|
65
|
-
|
66
|
-
data.all?{|d| d.length == 2 }
|
57
|
+
!data.empty? && data.all?{|d| d.length == 2 }
|
67
58
|
end
|
68
59
|
|
69
60
|
def array_of_array_to_array_of_xy(data)
|
data/lib/apexcharts/utils.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
module
|
1
|
+
module ApexCharts
|
2
2
|
module Utils
|
3
3
|
module Hash
|
4
|
+
module_function
|
5
|
+
|
4
6
|
def deep_merge(first_hash, second_hash)
|
5
7
|
first_hash.merge(second_hash) do |key, this_val, other_val|
|
6
8
|
if this_val.is_a?(::Hash) && other_val.is_a?(::Hash)
|
@@ -10,21 +12,21 @@ module Apexcharts
|
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
13
|
-
module_function :deep_merge
|
14
15
|
|
15
16
|
def camelize(key)
|
16
17
|
key.to_s.gsub(/_(.)/) {|m| m[1].upcase }.to_sym
|
17
18
|
end
|
18
|
-
module_function :camelize
|
19
19
|
|
20
20
|
def camelize_keys(value)
|
21
|
-
|
21
|
+
case value
|
22
|
+
when ::Hash
|
22
23
|
::Hash[value.map {|k, v| [camelize(k), camelize_keys(v)] }]
|
24
|
+
when Array
|
25
|
+
value.map {|e| camelize_keys(e) }
|
23
26
|
else
|
24
27
|
value
|
25
28
|
end
|
26
29
|
end
|
27
|
-
module_function :camelize_keys
|
28
30
|
end
|
29
31
|
end
|
30
32
|
end
|
data/lib/apexcharts/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apexcharts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Setyadi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: smart_kv
|
@@ -80,7 +80,50 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: nokogiri
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov-console
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: Create beautiful, interactive, and responsive web charts in ruby app
|
126
|
+
powered by apexcharts.js.
|
84
127
|
email:
|
85
128
|
- a.styd@yahoo.com
|
86
129
|
executables: []
|
@@ -93,16 +136,20 @@ files:
|
|
93
136
|
- lib/apexcharts/charts.rb
|
94
137
|
- lib/apexcharts/charts/area.rb
|
95
138
|
- lib/apexcharts/charts/bar.rb
|
139
|
+
- lib/apexcharts/charts/base.rb
|
96
140
|
- lib/apexcharts/charts/bubble.rb
|
141
|
+
- lib/apexcharts/charts/candlestick.rb
|
97
142
|
- lib/apexcharts/charts/cartesian.rb
|
98
143
|
- lib/apexcharts/charts/column.rb
|
99
144
|
- lib/apexcharts/charts/donut.rb
|
100
145
|
- lib/apexcharts/charts/features/annotations.rb
|
146
|
+
- lib/apexcharts/charts/features/mixable.rb
|
101
147
|
- lib/apexcharts/charts/heatmap.rb
|
102
148
|
- lib/apexcharts/charts/line.rb
|
103
149
|
- lib/apexcharts/charts/mixed.rb
|
104
150
|
- lib/apexcharts/charts/pie.rb
|
105
151
|
- lib/apexcharts/charts/polar.rb
|
152
|
+
- lib/apexcharts/charts/radar.rb
|
106
153
|
- lib/apexcharts/charts/radial_bar.rb
|
107
154
|
- lib/apexcharts/charts/scatter.rb
|
108
155
|
- lib/apexcharts/charts/syncing.rb
|
@@ -128,6 +175,7 @@ files:
|
|
128
175
|
- lib/apexcharts/options/x_axis.rb
|
129
176
|
- lib/apexcharts/options/y_axis.rb
|
130
177
|
- lib/apexcharts/options_builder.rb
|
178
|
+
- lib/apexcharts/renderer.rb
|
131
179
|
- lib/apexcharts/series.rb
|
132
180
|
- lib/apexcharts/series/bubble.rb
|
133
181
|
- lib/apexcharts/series/cartesian.rb
|
@@ -161,5 +209,5 @@ rubyforge_project:
|
|
161
209
|
rubygems_version: 2.7.6.2
|
162
210
|
signing_key:
|
163
211
|
specification_version: 4
|
164
|
-
summary:
|
212
|
+
summary: Awesome charts for your ruby app
|
165
213
|
test_files: []
|