Sha256: 5b3403634db93cfcc638ee608aa09e640e8faad56168ba34d60a24a39df608ef

Contents?: true

Size: 582 Bytes

Versions: 6

Compression:

Stored size: 582 Bytes

Contents

require 'core_ext/kernel/singleton_class'
require 'core_ext/module/delegation'

module CoreExt
  class Deprecation
    module InstanceDelegator # :nodoc:
      def self.included(base)
        base.extend(ClassMethods)
        base.public_class_method :new
      end

      module ClassMethods # :nodoc:
        def include(included_module)
          included_module.instance_methods.each { |m| method_added(m) }
          super
        end

        def method_added(method_name)
          singleton_class.delegate(method_name, to: :instance)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
core_ext-0.0.6 lib/core_ext/deprecation/instance_delegator.rb
core_ext-0.0.5 lib/core_ext/deprecation/instance_delegator.rb
core_ext-0.0.4 lib/core_ext/deprecation/instance_delegator.rb
core_ext-0.0.3 lib/core_ext/deprecation/instance_delegator.rb
core_ext-0.0.2 lib/core_ext/deprecation/instance_delegator.rb
core_ext-0.0.1 lib/core_ext/deprecation/instance_delegator.rb