module Malt::Conversions::Binding

Public Instance Methods

to_binding(binding) click to toggle source
# File lib/malt/conversions.rb, line 9
def to_binding(binding)
  binding
end
to_hash(binding) click to toggle source
# File lib/malt/conversions.rb, line 14
def to_hash(binding)
  Hash.new{ |h,k| h[k] = binding.eval(k) }
end
to_object(binding) click to toggle source
# File lib/malt/conversions.rb, line 19
def to_object(binding)
  obj = binding.eval("self")

  vars  = binding.eval("local_variables")
  vals  = binding.eval("[#{vars.join(',')}]")
  data  = Hash[*vars.zip(vals).flatten]

  adhoc = (class << obj; self; end)
  data.each do |name,value|
    adhoc.__send__(:define_method, name){ value }
  end

  obj
end