Sha256: 9226594ac90dd7d3d002aadccb10d901e2ddfb833352145f362c2617fc95b05c

Contents?: true

Size: 475 Bytes

Versions: 52

Compression:

Stored size: 475 Bytes

Contents

# from http://whytheluckystiff.net/articles/seeingMetaclassesClearly.html

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

Version data entries

52 entries across 52 versions & 6 rubygems

Version Path
Pistos-ramaze-2008.09 lib/ramaze/snippets/metaid.rb
Pistos-ramaze-2008.12 lib/ramaze/snippets/metaid.rb
Pistos-ramaze-2009.01 lib/ramaze/snippets/metaid.rb
Pistos-ramaze-2009.02 lib/ramaze/snippets/metaid.rb
Pistos-ramaze-2009.04.08 lib/ramaze/snippets/metaid.rb
Pistos-ramaze-2009.06.12 lib/ramaze/snippets/metaid.rb
clivecrous-ramaze-0.3.9.5 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2008.07 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2008.08 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2008.09 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2008.10 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2008.12 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.01 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.04.01 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.04.08 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.04.18 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.04.22 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.04 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.05.08 lib/ramaze/snippets/metaid.rb
manveru-ramaze-2009.05 lib/ramaze/snippets/metaid.rb