Issue #16137 has been reported by okuramasafumi (Masafumi OKURA).

----------------------------------------
Feature #16137: Add === to UnboundMethod
https://bugs.ruby-lang.org/issues/16137

* Author: okuramasafumi (Masafumi OKURA)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
# Abstract

`UnboundMethod` class should have `=== ` so that it can be used in case statement.

# Background

`Method` class has `===` method so that we can do something like:
``` ruby
require 'prime'
case 11
when Prime.method(:prime?) then :prime
end
```

However, we cannot do something like this:
```ruby
positive = Integer.instance_method(:positive?)
case 11
when positive then :positive
end
```

# Proposal

Add `===` method to `UnboundMethod` class.

# Implementation

Minimal implementation in Ruby could be:
```ruby
class UnboundMethod
  def ===(other)
    bind(other).call
  end
end
```

# Summary

`===` for `UnboundMethod` can improve readability in case statement.



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>