Sha256: cdc443fb9e7597106f1b5dc5beb311f978d44ea15811140a8f1ba125a97a7d9f

Contents?: true

Size: 464 Bytes

Versions: 90

Compression:

Stored size: 464 Bytes

Contents

# Thanks to _why

class Object

  def metaclass; class << self; self; end; end

  def meta_eval(src=nil, &blk)
    if src
      metaclass.instance_eval(src)
    else
      metaclass.instance_eval &blk
    end
  end

  def metaclass_eval(src=nil, &blk)
    if src
      metaclass.class_eval(src)
    else
      metaclass.class_eval &blk
    end
  end

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

end

Version data entries

90 entries across 90 versions & 2 rubygems

Version Path
hobo_support-2.0.0.pre7 lib/hobo_support/metaid.rb
hobo_support-2.0.0.pre6 lib/hobo_support/metaid.rb
hobo_support-2.0.0.pre5 lib/hobo_support/metaid.rb
hobo_support-2.0.0.pre4 lib/hobo_support/metaid.rb
hobo_support-1.3.2 lib/hobo_support/metaid.rb
hobo_support-1.3.1 lib/hobo_support/metaid.rb
hobo_support-2.0.0.pre3 lib/hobo_support/metaid.rb
hobo_support-2.0.0.pre2 lib/hobo_support/metaid.rb
hobo_support-2.0.0.pre1 lib/hobo_support/metaid.rb
hobo_support-1.4.0.pre8 lib/hobo_support/metaid.rb
hobo_support-1.4.0.pre7 lib/hobo_support/metaid.rb
hobo_support-1.4.0.pre6 lib/hobo_support/metaid.rb
hobo_support-1.4.0.pre5 lib/hobo_support/metaid.rb
hobo_support-1.4.0.pre4 lib/hobo_support/metaid.rb
hobo_support-1.4.0.pre3 lib/hobo_support/metaid.rb
hobo_support-1.4.0.pre2 lib/hobo_support/metaid.rb
hobosupport-1.1.0 lib/hobo_support/metaid.rb
hobo_support-1.3.0 lib/hobo_support/metaid.rb
hobo_support-1.3.0.RC4 lib/hobo_support/metaid.rb
hobo_support-1.3.0.RC3 lib/hobo_support/metaid.rb