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/