Skip to content

Commit e4fb965

Browse files
committed
Extract DSV data building and header validation
1 parent 954f601 commit e4fb965

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

‎lib/youplot/dsv.rb‎

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,24 @@ def parse(input, delimiter, headers, transpose)
2323
# get series
2424
series = get_series(arr, headers, transpose)
2525

26+
build_data(headers, series)
27+
end
28+
29+
# Transpose different sized ruby arrays
30+
# https://stackoverflow.com/q/26016632
31+
def transpose2(arr)
32+
Array.new(arr.map(&:length).max) { |i| arr.map { |e| e[i] } }
33+
end
34+
35+
def build_data(headers, series)
2636
# Return if No header
2737
return Data.new(headers, series) if headers.nil?
2838

39+
h_size, s_size = validate_headers(headers, series)
40+
Data.new(headers, series) if h_size == s_size
41+
end
42+
43+
def validate_headers(headers, series)
2944
# Warn if header contains nil
3045
warn "\e[35mHeaders contains nil in it.\e[0m" if headers.include?(nil)
3146

@@ -39,19 +54,12 @@ def parse(input, delimiter, headers, transpose)
3954
if h_size > s_size
4055
warn "\e[35mThe number of headers is greater than the number of series.\e[0m"
4156
exit 1 if YouPlot.run_as_executable?
42-
4357
elsif h_size < s_size
4458
warn "\e[35mThe number of headers is less than the number of series.\e[0m"
4559
exit 1 if YouPlot.run_as_executable?
4660
end
4761

48-
Data.new(headers, series) if h_size == s_size
49-
end
50-
51-
# Transpose different sized ruby arrays
52-
# https://stackoverflow.com/q/26016632
53-
def transpose2(arr)
54-
Array.new(arr.map(&:length).max) { |i| arr.map { |e| e[i] } }
62+
[h_size, s_size]
5563
end
5664

5765
def get_headers(arr, headers, transpose)

0 commit comments

Comments
 (0)