From bb0c13bfdb11e2d8505f2fe87dab5ae8391e9264 Mon Sep 17 00:00:00 2001
From: David Heinemeier Hansson <david@loudthinking.com>
Date: Thu, 6 Dec 2018 13:54:09 -0800
Subject: Address objects are value objects

---
 lib/action_mailbox/mail_ext/address_equality.rb | 5 +++++
 test/unit/mail_ext/address_equality_test.rb     | 9 +++++++++
 2 files changed, 14 insertions(+)
 create mode 100644 lib/action_mailbox/mail_ext/address_equality.rb
 create mode 100644 test/unit/mail_ext/address_equality_test.rb

diff --git a/lib/action_mailbox/mail_ext/address_equality.rb b/lib/action_mailbox/mail_ext/address_equality.rb
new file mode 100644
index 0000000000..76675365dd
--- /dev/null
+++ b/lib/action_mailbox/mail_ext/address_equality.rb
@@ -0,0 +1,5 @@
+class Mail::Address
+  def ==(other_address)
+    other_address.is_a?(Mail::Address) && to_s == other_address.to_s
+  end
+end
diff --git a/test/unit/mail_ext/address_equality_test.rb b/test/unit/mail_ext/address_equality_test.rb
new file mode 100644
index 0000000000..56e9bfa47f
--- /dev/null
+++ b/test/unit/mail_ext/address_equality_test.rb
@@ -0,0 +1,9 @@
+require_relative '../../test_helper'
+
+module MailExt
+  class AddressEqualityTest < ActiveSupport::TestCase
+    test "two addresses with the same address are equal" do
+      assert_equal Mail::Address.new("david@basecamp.com"), Mail::Address.new("david@basecamp.com")
+    end
+  end
+end
-- 
cgit v1.2.3