From: manga.osyo@... Date: 2018-11-06T23:18:47+00:00 Subject: [ruby-core:89737] [Ruby trunk Feature#15286] Proposal: Add Kernel.#expand(*args) Issue #15286 has been reported by osyo (manga osyo). ---------------------------------------- Feature #15286: Proposal: Add Kernel.#expand(*args) https://bugs.ruby-lang.org/issues/15286 * Author: osyo (manga osyo) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- This is a suggestion for Hash shorthand. * [add support for hash shorthand](https://bugs.ruby-lang.org/issues/15236) `Kernel.#expand(*args)` is expand `local variable` and `method` to Hash. `*args` is method or local variable names. ## Example ```ruby def meth "meth" end a, b, c = 1, 2, 3 # #expand args is local variable or method names # Expand to { a: a, b: b: meth: meth } p expand(:a, :b, :meth) # => {:a=>1, :b=>2, :meth=>"meth"} # Error: `expand': undefined method `hoge' for main:Object (NoMethodError) p expand(:hoge) ``` What can be expanded, * local variable * method and, If there are duplicate names, prioritize local variable. ```ruby def meth "meth" end meth = 42 p expand(:meth) # => {:meth=>42} ``` pull request: https://github.com/ruby/ruby/pull/2006 -- https://bugs.ruby-lang.org/ Unsubscribe: