module ContextEval

Constants

VERSION

Public Instance Methods

context_eval(*args) click to toggle source
# File lib/context_eval.rb, line 4
def context_eval(*args)
  arg = args.shift

  case arg
  when Symbol
    send(arg)
  when Proc
    if arg.arity == 0
      instance_exec(&arg)
    elsif arg.arity > 0
      instance_exec(*args.take(arg.arity), &arg)
    else
      instance_exec(*args, &arg)
    end
  else
    arg
  end
end