class ApexCharts::Series::CartesianSeries
Attributes
sanitized[R]
Public Class Methods
new(data)
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 11 def initialize(data) @sanitized = {series: build_series(deep_copy(data))} end
Public Instance Methods
sample()
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 15 def sample return if empty? sanitized[:series][0][:data][0][:x] end
Private Instance Methods
array_of_array_to_array_of_xy(data)
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 77 def array_of_array_to_array_of_xy(data) data.map {|d| {x: d.first, y: d.last} } end
array_of_pairs?(data)
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 73 def array_of_pairs?(data) !data.empty? && data.all? {|d| d.length == 2 } end
build_series(data)
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 27 def build_series(data) return data if data.empty? case data when Array build_series_from_array(data) when Hash build_series_from_hash(data) end end
build_series_from_array(data)
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 38 def build_series_from_array(data) case first_data = data[0] when Array [{data: array_of_array_to_array_of_xy(data)}] when Hash if first_data[:data] data.each {|h| h[:data] = array_of_array_to_array_of_xy(h[:data]) } data end end end
build_series_from_hash(data)
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 51 def build_series_from_hash(data) if data_value = data[:data] if array_of_pairs?(data_value) data[:data] = array_of_array_to_array_of_xy(data_value) [data] end elsif data[:x] && data[:y] [{data: [data]}] else [ { data: data.map do |key, value| {x: key, y: value} end } ] end end
empty?()
click to toggle source
# File lib/apex_charts/series/cartesian_series.rb, line 23 def empty? sanitized[:series].empty? || sanitized[:series][0][:data].empty? end