Class: Object
- Inherits:
- BasicObject
- Defined in:
- lib/dup_eval.rb,
lib/dup_eval.rb
Instance Method Summary collapse
- #dup_eval(*mods, &blk) ⇒ Object (also: #dup_eval_with)
Instance Method Details
#dup_eval(*mods, &blk) ⇒ Object Also known as: dup_eval_with
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/dup_eval.rb', line 65 def dup_eval(*mods, &blk) #default value is self mods = self if mods.empty? duped_context = blk._context.dup #make sure the singleton class is in existence class << duped_context; self; end duped_context.redirect_tbls(blk._context) duped_context.gen_extend(*mods) begin m = duped_context.is_a?(Module) ? :class_eval : :instance_eval duped_context.send(m, &blk) ensure duped_context.restore_tbls end end |