Issue #14142 has been reported by osyo (manga osyo).

----------------------------------------
Feature #14142: Add Method#===
https://bugs.ruby-lang.org/issues/14142

* Author: osyo (manga osyo)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
## 概要

Ruby の `Method` クラスに対する提案になります。  
初めてこちらを利用するので内容や書き方などに対する問題があれば教えていただけると助かります。


## 提案

`Method#call` と同等の `Method#===` を定義する。


## 理由

`Proc` では `Proc#===` が `Proc#call` の同等のメソッドとして定義されています。
`Method` が `Proc` のように振る舞うことを期待するのであれば、`Proc#===` と同等の `Method#===` が定義されている方がよいのではないでしょうか。


## ユースケース

以下のようにして `Proc` と同様に `when` で使用する事が出来るようになります。

```ruby
# when で使用する
def check value
	case value
	when 0.method(:<)
		"plus"
	when 0.method(:>)
		"minus"
	when 0.method(:==)
		"zero"
	end
end

p check 3   # => "plus"
p check -6  # => "minus"
p check 0   # => "zero"
```


## 問題点

`Method#===` が `Object#===` を呼び出すことを期待しているようなコードであれば意図しない動作になる可能性があります。


---Files--------------------------------
add_method_eqq.patch (1.06 KB)


-- 
https://bugs.ruby-lang.org/