Sha256: 754148dd00b4bb47897c67da395de05f6bd71522449354bd24f11ed2153c417f

Contents?: true

Size: 466 Bytes

Versions: 6

Compression:

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

6 entries across 6 versions & 2 rubygems

Version Path
hobo-support-0.1 lib/hobosupport/metaid.rb
hobosupport-0.1 lib/hobosupport/metaid.rb
hobosupport-0.2 lib/hobosupport/metaid.rb
hobosupport-0.7.3.99 lib/hobosupport/metaid.rb
hobosupport-0.7.4 lib/hobosupport/metaid.rb
hobosupport-0.7.5 lib/hobosupport/metaid.rb