metaid-1.0/0000775000175000017500000000000011760513075011310 5ustar paulpaulmetaid-1.0/metadata.yml0000664000175000017500000000145511760513075013620 0ustar paulpaul--- !ruby/object:Gem::Specification rubygems_version: 0.8.11 specification_version: 1 name: metaid version: !ruby/object:Gem::Version version: "1.0" date: 2006-01-17 00:00:00 -07:00 summary: slight metaprogramming helpers require_paths: - "." email: why@ruby-lang.org homepage: http://whytheluckystiff.net/metaid/ rubyforge_project: hobix description: autorequire: metaid default_executable: bindir: bin has_rdoc: false required_ruby_version: !ruby/object:Gem::Version::Requirement requirements: - - ">" - !ruby/object:Gem::Version version: 0.0.0 version: platform: ruby signing_key: cert_chain: authors: - why the lucky stiff files: - metaid.rb test_files: [] rdoc_options: [] extra_rdoc_files: [] executables: [] extensions: [] requirements: [] dependencies: []metaid-1.0/metaid.rb0000644000175000017500000000103711760513075013077 0ustar paulpaul# Metaid == a few simple metaclass helper # (See 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