class Ecu

def ==(other)

def ==(other)
  self.to_s == other.to_s
end

def eql?(other)

def eql?(other)
  self == other
end

def hash

def hash
  name.hash
end

def initialize(name:, signals: SignalList.new([]), labels: LabelList.new([]), **hsh)

def initialize(name:, signals: SignalList.new([]), labels: LabelList.new([]), **hsh)
  @name    = name
  @signals = case signals
             when String     then SignalList.from_file(signals)
             when SignalList then signals
             else raise "Unknown signals format"
             end
  @labels  = case labels
             when String    then LabelList.from_file(labels)
             when LabelList then labels
             else raise "Unknown labels format"
             end
  @hsh = hsh
end

def inspect

def inspect
  "<Ecu: #{name}>"
end

def is_can?

def is_can?
  name[-3..-1] == "CAN"
end

def method_missing(m, *args, &block)

def method_missing(m, *args, &block)
  @hsh.fetch(m) do
    raise ArgumentError.new("Cannot find property #{m}")
  end
end

def respond_to?(m, include_all=false)

def respond_to?(m, include_all=false)
  @hsh.keys.include?(m)
end

def shortname

def shortname
  name.sub(/:.*/, "")
end

def to_s

def to_s
  name
end