Project

General

Profile

Feature #10017

Updated by nobu (Nobuyoshi Nakada) over 6 years ago

I'm proposing to add a new method `Hash#values_at!` that's basically a combination of `#values_at` and `#fetch`. 

 When dealing with configuration I prefer to use `#fetch` to fail early and this would be useful to read multiple keys at a time. 
 An example (not strictly on a Hash, but you get the idea) could be: 

 ```ruby ``` 
 repo, token = ENV.values_at!('GITHUB_REPO', 'GITHUB_TOKEN') 

 ENV.values_at!('INVALID') # raises KeyError 

 # not sure if that useful, but I provide it here for the sake of completeness 
 ENV.values_at!("SHELL", "INVALID") { |k| k + " is missing" } # => ["/bin/bash", "INVALID is missing"] 
 ``` 

 Another name for this could be `#fetch_at`, perhaps. 

 P.S. I'm attaching a patch that was done using mostly trial and error

Back