From: "ko1 (Koichi Sasada)" Date: 2013-08-09T18:56:09+09:00 Subject: [ruby-core:56472] [CommonRuby - Feature #8643] Add Binding.from_hash Issue #8643 has been updated by ko1 (Koichi Sasada). Assignee set to ko1 (Koichi Sasada) What do you think about [Feature #8761]? Usage: def get_empty_binding binding end ... b = get_empty_binding hash.each{|k, v| b.local_variable_set(k, v) } # use b I think that Binding#local_variable_set() can be extended to accept one hash parameter (pairs of local variable name and value). b = get_empty_binding b.local_variable_set(hash) b.local_variable_set(a: 1, b: 2) ---------------------------------------- Feature #8643: Add Binding.from_hash https://bugs.ruby-lang.org/issues/8643#change-41019 Author: rosenfeld (Rodrigo Rosenfeld Rosas) Status: Open Priority: Normal Assignee: ko1 (Koichi Sasada) Category: Target version: Binding.from_hash would work like: class Binding def self.from_hash(hash) OpenStruct.new(hash){ binding } end end It would simplify things like: ERB.new(IO.read 'template.erb').result Binding.from_hash(template_local: 'example') Or if you need to eval some code in another process (JRuby, for instance) and need to pass some arguments to the eval code in a hash form. I didn't want to pollute Hash by adding Hash#to_binding. I believe Binding.from_hash is more appropriate. -- http://bugs.ruby-lang.org/