how about that

    if name.to_s.match(/=\z/)
       key = name.to_s.delete("=").to_sym
      @changed_attributes[key] = args.first unless @attributes[key] == args.first
    else
      @changed_attributes[name] || @attributes[name] || super
    end

much easier to understand when you have only if and else blocks (without elsif)