寻找两个ruby对象实例之间差异的diff gem

时间:2014-11-09 03:44:52

标签: ruby sinatra rails-activerecord

所以如果我有两个汽车对象实例看起来像:

car1 = {make: Ford, model: Taurus, color: purple}
car2 = {make: Ford, model: f150, color: purple}

我会得到类似的东西:

car1.method(car2)
>> model:f150

有什么想法吗?我真的想找到一个对象的字符串元素的具体差异。

1 个答案:

答案 0 :(得分:0)

如果您想专门使用Ruby哈希,就像在您的示例中一样,这将起作用:

class Hash
  def diff (other)
    result = {}

    self.keys.each do |key|
      if self[key] != other[key]
        result[key] = other[key]
      end
    end

    return result
  end
end

car1 = {make: "Ford", model: "Taurus", color: "purple"}
car2 = {make: "Ford", model: "f150", color: "purple"}

car1.diff(car2)
# => {:model=>"f150"}

另一方面,如果您想使用哈希以外的对象,则应该发布代码,显示您正在寻找的内容。