class Ecu::CombinedList

def self.from_lab(str)

def self.from_lab(str)
  signals, labels, headers, subheaders = LabParser.call(str)
  new(signals, labels, headers, subheaders)
end

def initialize(signals=SignalList.new, labels=LabelList.new, headers=[], subheaders=[])

def initialize(signals=SignalList.new, labels=LabelList.new, headers=[], subheaders=[])
  @signals    = signals
  @labels     = labels
  @headers    = headers
  @subheaders = subheaders
end

def inspect; to_s end

def inspect; to_s end

def to_lab

def to_lab
  out = []
  out.append(*headers.map { |l| "; #{l}" }, "") unless headers.empty?
  out.append("[SETTINGS]")
  out.append("Version;V1.1")
  out.append("MultiRasterSeparator;&")
  out.append("")
  out.append(*subheaders.map { |l| "; #{l}" }, "") unless subheaders.empty?
  out.append("[RAMCELL]")
  out.append(*signals.map(&:to_lab))
  out.append("[Label]")
  out.append(*labels.map(&:to_lab))
  out.join("\n")
end

def to_s

def to_s
  "<CombinedList: #{signals.count} signals, #{labels.count} labels}>"
end