From 35ac22d6ef60bcfb699ed6e92d9cbe4d891762c3 Mon Sep 17 00:00:00 2001 From: Edouard CHIN Date: Mon, 22 Jul 2019 14:02:15 +0200 Subject: Deprecated `AM::Errors#to_h`: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - In ef4d3215b1198c456780b8d18aa62be7795b9b8c I made a change to pass `AM::Error` object in case the arity of the block passed to `each` accepted less than 2 arguments. This is causing one issue for `to_h` as it expects the argument passed to the block to be an Array (and were are passing it an instance of `AM::Error`). There is no real reason to use `to_h` anymore since `to_hash` exists Deprecating `to_h` inf favor of `to_hash` Co-Authored-By: Rafael França --- activemodel/lib/active_model/errors.rb | 6 ++++++ activemodel/test/cases/errors_test.rb | 10 ++++++++++ 2 files changed, 16 insertions(+) (limited to 'activemodel') diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb index 5628a59845..e7405fb586 100644 --- a/activemodel/lib/active_model/errors.rb +++ b/activemodel/lib/active_model/errors.rb @@ -303,6 +303,12 @@ module ActiveModel hash end + def to_h + deprecation_rename_warning(:to_h, :to_hash) + + to_hash + end + def messages DeprecationHandlingMessageHash.new(self) end diff --git a/activemodel/test/cases/errors_test.rb b/activemodel/test/cases/errors_test.rb index 60b20ab59f..79ccfe0c13 100644 --- a/activemodel/test/cases/errors_test.rb +++ b/activemodel/test/cases/errors_test.rb @@ -474,6 +474,16 @@ class ErrorsTest < ActiveModel::TestCase assert_equal ["name cannot be blank", "name cannot be nil"], person.errors.to_a end + test "to_h is deprecated" do + person = Person.new + person.errors.add(:name, "cannot be blank") + + expected_deprecation = "ActiveModel::Errors#to_h is deprecated. Please call #to_hash instead." + assert_deprecated(expected_deprecation) do + assert_equal({ name: ["cannot be blank"] }, person.errors.to_h) + end + end + test "to_hash returns the error messages hash" do person = Person.new person.errors.add(:name, "cannot be blank") -- cgit v1.2.3