Issue #13290 has been updated by Yukihiro Matsumoto.
Status changed from Open to Feedback
I don't see how mush useful this proposal is. Please show us concrete use-case.
Matz.
----------------------------------------
Feature #13290: A method to use a hash like in a case construction
https://bugs.ruby-lang.org/issues/13290#change-63532
* Author: Tsuyoshi Sawada
* Status: Feedback
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
We often want to translate a hash into a case construction and back. For example, suppose we have a case construction like this:
```ruby
case key
when /foo/ then "FOO"
when /bar/ then "BAR"
else "DEFAULT"
end
```
Given that the keys are ordered within a hash since Ruby 1.9, the information used in the case construction above can be expressed as a hash `h`:
```ruby
h = {
/foo/ => "FOO"
/bar/ => "BAR"
...
}
h.default = "DEFAULT"
```
At the moment, there is no straightforward way to translate the hash `h` into the case construction as above. I would like to have a method on `Hash` that takes a key and works like a case construction (i.e., applies the `===` method) as below:
```ruby
h.fetch_as_in_case_construction("barbar") # => "BAR"
```
The name `fetch_as_in_case_construction` is terrible. Perhaps someone can suggest a better name.
--
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>