refactoring...

This commit is contained in:
kojix2 2020-08-15 15:45:46 +09:00
parent ee74b32815
commit 3c51e0c902

View File

@ -141,8 +141,9 @@ module Uplot
end end
end end
# Transpose different sized ruby arrays
# https://stackoverflow.com/q/26016632 # https://stackoverflow.com/q/26016632
def transpose2(arr) # Should be renamed def transpose2(arr)
Array.new(arr.map(&:length).max) { |i| arr.map { |e| e[i] } } Array.new(arr.map(&:length).max) { |i| arr.map { |e| e[i] } }
end end
@ -151,18 +152,35 @@ module Uplot
data.delete([]) # Remove blank lines. data.delete([]) # Remove blank lines.
data.delete_if { |i| i.all? nil } # Room for improvement. data.delete_if { |i| i.all? nil } # Room for improvement.
p parsed_csv: data if @debug p parsed_csv: data if @debug
headers = nil headers = get_headers(data)
data = get_data(data)
[data, headers]
end
def get_headers(data)
if @headers
if @transpose
data.map(&:first)
else
data[0]
end
end
end
def get_data(data)
if @transpose if @transpose
if @headers if @headers
headers = [] data.map { |row| row[1..-1] }
# each but destructive like map else
data.each { |series| headers << series.shift } data
end end
else else
headers = data.shift if @headers if @headers
data = transpose2(data) transpose2(data[1..-1])
else
tanrspose2(data)
end
end end
[data, headers]
end end
def preprocess_count(data) def preprocess_count(data)