Project

General

Profile

Actions

Feature #13290

closed

A method to use a hash like in a case construction

Added by sawa (Tsuyoshi Sawada) about 7 years ago. Updated about 7 years ago.

Status:
Feedback
Assignee:
-
Target version:
-
[ruby-core:79960]

Description

We often want to translate a hash into a case construction and back. For example, suppose we have a case construction like this:

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:

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:

h.fetch_as_in_case_construction("barbar") # => "BAR"

The name fetch_as_in_case_construction is terrible. Perhaps someone can suggest a better name.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0