Sha256: 08d4a58c14aeb1708f761124e4e04f33e2d0652945ab3331e442f583d464fa06

Contents?: true

Size: 683 Bytes

Versions: 50

Compression:

Stored size: 683 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

  # A class_eval version of meta_eval
  def metaclass_eval(&blk); metaclass.class_eval(&blk); end

  # A class_def version of meta_def
  def metaclass_def(name, &blk)
    metaclass_eval { define_method(name, &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

50 entries across 50 versions & 5 rubygems

Version Path
ronin-support-0.5.2 lib/ronin/extensions/meta/object.rb
ronin-support-0.5.1 lib/ronin/extensions/meta/object.rb
ronin-support-0.5.0 lib/ronin/extensions/meta/object.rb
ronin-support-0.5.0.rc2 lib/ronin/extensions/meta/object.rb
ronin-support-0.5.0.rc1 lib/ronin/extensions/meta/object.rb
ronin-support-0.4.1 lib/ronin/extensions/meta/object.rb
ronin-support-0.4.0 lib/ronin/extensions/meta/object.rb
ronin-support-0.4.0.rc2 lib/ronin/extensions/meta/object.rb
ronin-support-0.4.0.rc1 lib/ronin/extensions/meta/object.rb
ronin-support-0.3.0 lib/ronin/extensions/meta/object.rb
ronin-support-0.2.0 lib/ronin/extensions/meta/object.rb
ronin-support-0.2.0.rc2 lib/ronin/extensions/meta/object.rb
ronin-support-0.2.0.rc1 lib/ronin/extensions/meta/object.rb
ronin-support-0.1.0 lib/ronin/extensions/meta/object.rb
ronin-support-0.1.0.rc3 lib/ronin/extensions/meta/object.rb
ronin-support-0.1.0.rc2 lib/ronin/extensions/meta/object.rb
ronin-support-0.1.0.rc1 lib/ronin/extensions/meta/object.rb
ronin-support-0.1.0.pre3 lib/ronin/extensions/meta/object.rb
ronin-support-0.1.0.pre2 lib/ronin/extensions/meta/object.rb
ronin-support-0.1.0.pre1 lib/ronin/extensions/meta/object.rb