Sha256: dfa5af8725c63747cf042268d9e71c4a9ccc00787d5b82b3f46537a1283cc3c0

Contents?: true

Size: 478 Bytes

Versions: 46

Compression:

Stored size: 478 Bytes

Contents

class Object
  # The hidden singleton lurks behind everyone
  def metaclass
    class << self
      self
    end
  end

  def meta_eval &blk
    metaclass.instance_eval &blk
  end

  # Adds methods to a metaclass
  def meta_def name, &blk
    meta_eval { define_method name, &blk }
  end

  # Defines an instance method within a class
  def class_def name, &blk
    class_eval { define_method name, &blk }
  end
end

if $0 == __FILE__
  o = Object.new
  p o
  p o.metaclass
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
epitools-0.4.8 lib/epitools/metaclass.rb
epitools-0.4.7 lib/epitools/metaclass.rb
epitools-0.4.6 lib/epitools/metaclass.rb
epitools-0.4.5 lib/epitools/metaclass.rb
epitools-0.4.4 lib/epitools/metaclass.rb
epitools-0.4.3 lib/epitools/metaclass.rb
epitools-0.4.2 lib/epitools/metaclass.rb
epitools-0.4.1 lib/epitools/metaclass.rb
epitools-0.4.0 lib/epitools/metaclass.rb
epitools-0.3.4 lib/epitools/metaclass.rb
epitools-0.3.3 lib/epitools/metaclass.rb
epitools-0.3.2 lib/epitools/metaclass.rb
epitools-0.3.1 lib/epitools/metaclass.rb
epitools-0.3.0 lib/epitools/metaclass.rb
epitools-0.2.1 lib/epitools/metaclass.rb
epitools-0.2.0 lib/epitools/metaclass.rb
epitools-0.1.11 lib/epitools/metaclass.rb
epitools-0.1.10 lib/epitools/metaclass.rb
epitools-0.1.9 lib/epitools/metaclass.rb
epitools-0.1.8 lib/epitools/metaclass.rb