Sha256: 1965a984f0868c8dc42f718b1d439e04730a7c47d49c8509e7b53f4475727410

Contents?: true

Size: 620 Bytes

Versions: 24

Compression:

Stored size: 620 Bytes

Contents

# encoding: utf-8

# Singleton methods are defined here so zombie can pick them up
module Mutant

  # Define instance of subclassed superclass as constant
  #
  # @param [Class] superclass
  # @param [Symbol] name
  #
  # @return [self]
  #
  # @api private
  #
  def self.singleton_subclass_instance(name, superclass, &block)
    klass = Class.new(superclass) do
      def inspect
        self.class.name
      end

      define_singleton_method(:name) do
        "#{superclass.name}::#{name}".freeze
      end
    end
    klass.class_eval(&block)
    superclass.const_set(name, klass.new)
    self
  end

end # Mutant

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
mutant-0.5.10 lib/mutant/singleton_methods.rb
mutant-0.5.9 lib/mutant/singleton_methods.rb
mutant-0.5.8 lib/mutant/singleton_methods.rb
mutant-0.5.7 lib/mutant/singleton_methods.rb
mutant-0.5.6 lib/mutant/singleton_methods.rb
mutant-0.5.5 lib/mutant/singleton_methods.rb
mutant-0.5.4 lib/mutant/singleton_methods.rb
mutant-0.5.3 lib/mutant/singleton_methods.rb
mutant-0.5.2 lib/mutant/singleton_methods.rb
mutant-0.5.1 lib/mutant/singleton_methods.rb
mutant-0.5.0 lib/mutant/singleton_methods.rb
mutant-0.3.6 lib/mutant/singleton_methods.rb
mutant-0.3.5 lib/mutant/singleton_methods.rb
mutant-0.3.4 lib/mutant/singleton_methods.rb
mutant-0.3.3 lib/mutant/singleton_methods.rb
mutant-0.3.2 lib/mutant/singleton_methods.rb
mutant-0.3.1 lib/mutant/singleton_methods.rb
mutant-0.3.0 lib/mutant/singleton_methods.rb
mutant-0.3.0.rc5 lib/mutant/singleton_methods.rb
mutant-0.3.0.rc4 lib/mutant/singleton_methods.rb