Sha256: a09402fbe15a782ada07d76dda16ff1cc0163d93db477114b0c091be6b50b5e8

Contents?: true

Size: 713 Bytes

Versions: 2

Compression:

Stored size: 713 Bytes

Contents

class Object
  # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
  def metaclass
    class << self
      self
    end
  end
 
  # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
  def meta_eval(&blk)
    metaclass.instance_eval(&blk)
  end
 
  # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
  def meta_def(name, &blk)
   meta_eval { define_method name, &blk }
  end
 
  # http://www.yohasebe.com/pages/trans-seeing-metaclasses-clearly/
  def class_def(name, &blk)
    class_eval { define_method name, &blk }
  end
  
  # 1.8.7  エミュレート
  # TODO version 指定
  def tap
    yield(self)
    self
  end
  
  def tapp
    self.tap{|obj| p obj}
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
kanamei-keystone-0.0.27 lib/keystone/core_ext/object.rb
keystone-0.0.29 lib/keystone/core_ext/object.rb