Sha256: a41de3f20aeceb037bdcc09788dcd1e500a0986b47c5f0853c62709fb0de8e95

Contents?: true

Size: 585 Bytes

Versions: 3

Compression:

Stored size: 585 Bytes

Contents

require "extensible/extension_kernel_template".freeze
require "extensible/utils".freeze

module Extensible
  ##
  # A custom ExtensionKernelTemplate clone that is extended by Extensible to make it, well, extensible.
  ExtensionKernel = ExtensionKernelTemplate.clone.module_eval do
    private

    def extended(submodule)
      super

      unless Utils.own_const_defined?(submodule, :ExtensionKernel)
        kernel = ExtensionKernelTemplate.clone
        submodule.const_set(:ExtensionKernel, kernel)
        submodule.extend kernel
      end

      self
    end

    self
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
extensible-0.1.1 lib/extensible/extension_kernel.rb
extensible-0.1.0 lib/extensible/extension_kernel.rb
extensible-0.0.5 lib/extensible/extension_kernel.rb