Module: Upcastable::Hooks
- Included in:
- BasicObject, Kernel
- Defined in:
- lib/upcastable/hooks.rb
Class Method Summary collapse
Class Method Details
.extended(base) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/upcastable/hooks.rb', line 3 def self.extended(base) if base < Object raise ArgumentError, 'extended class or module must be an ancestor of Object' end base.class_eval do class << self alias_method :__upcastable_orig_method_added, :method_added private def method_added(name) return unless Object <= self ::Upcastable::UpcastedObject.define_delegate_method(name) __upcastable_orig_method_added(name) end end end end |