Sha256: 08921f74a3163c180bdd6501dfbb1a0a53bb4342e160caa8e4c4d6e1c7921185
Contents?: true
Size: 860 Bytes
Versions: 4
Compression:
Stored size: 860 Bytes
Contents
class Ecu class ValueComparison def initialize(left, right) # check_compatibility(left, right) @left, @right = left, right end def eql? case [@left, @right] in [NilClass, NilClass] then @left == @right in [String, String] then @left == @right in [Numeric, Numeric] then @left == @right in [Array, Array] then arrays_eql?(@left, @right) in [_, _] then false end end private def arrays_eql?(left, right) return false unless left.size == right.size left.zip(right).all? { self.class.new(*_1).eql? } end def check_compatibility(left, right) if left.class != right.class fail ArgumentError, "Values must have the same class for comparison (#{left}: #{left.class}/#{right}: #{right.class})" end end end end
Version data entries
4 entries across 4 versions & 1 rubygems