Issue #10177 has been updated by Tsuyoshi Sawada. `has_key?` is one of the few exceptions to the naming convention in that it uses the third person singular present form of a verb. To keep the method names as general as possible, it is better to use the most general form of a verb and avoid third person singular present. In that respect, it is much better if `has_key?` is deprecated than `key?` is deprecated. First Last, given hashes like the following, I don't understand how `has_key?` is better "in the interest of maximizing the English readability and sensibility" than `key?`. I = {name: "Yamada", gender: "male"} I.has_key?(:name) you = {name: "Tanaka", gender: "female"} you.has_key?(:gender) we = {location: "Tokyo", company: "Foo corporation"} we.has_key?(:location) ---------------------------------------- Feature #10177: Hash#has_key? and Hash#has_value? should be deprecated https://bugs.ruby-lang.org/issues/10177#change-48895 * Author: gogo tanaka * Status: Open * Priority: Normal * Assignee: * Category: lib * Target version: ---------------------------------------- I referred to this Matz's remark. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/43765 And I agree with him, I supposed `Hash#has_key?` should be preferred over `Hash#key?`, so I replaced all of `Hash#has_key?` and `Hash#has_value?` in `lib/*` with `Hash#key?` and `Hash#value?` ---Files-------------------------------- Replace_Hash#has_something.PATCH (20.4 KB) -- https://bugs.ruby-lang.org/