Sha256: 45885a753375e92438b67dbc035c359268cabf80cf751762ba5fb4f71adbdf07

Contents?: true

Size: 460 Bytes

Versions: 6

Compression:

Stored size: 460 Bytes

Contents

# metaprogramming assistant -- metaid.rb
class Object # :nodoc:
  # 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

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
dinsley-markaby-0.0.5 lib/markaby/metaid.rb
dinsley-markaby-0.0.6 lib/markaby/metaid.rb
dinsley-markaby-0.0.7 lib/markaby/metaid.rb
dinsley-markaby-0.0.9 lib/markaby/metaid.rb
joho-Markaby-0.6.0 lib/markaby/metaid.rb
tobyh-markaby-1.0.0 lib/markaby/metaid.rb