Sha256: c55c6080b50b3a0d9bb663e96bee65e23d7bf486fa8848e7aaa0e01ea17a9a10

Contents?: true

Size: 378 Bytes

Versions: 10

Compression:

Stored size: 378 Bytes

Contents

require 'facets/more/functor'

module Kernel

  # Provides access to an object's metaclass (ie. singleton)
  # by-passsing access provisions. So for example:
  #
  #   class X
  #     meta.attr_accesser :a
  #   end
  #
  #   X.a = 1
  #   X.a #=> 1

  def meta
    @_meta_functor ||= Functor.new do |op,*args|
      (class << self; self; end).send(op,*args)
    end
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
facets-1.7.0 lib/facets/core/kernel/meta.rb
facets-1.7.30 lib/facets/core/kernel/meta.rb
facets-1.7.38 lib/facets/core/kernel/meta.rb
facets-1.7.46 lib/facets/core/kernel/meta.rb
facets-1.8.0 lib/facets/core/kernel/meta.rb
facets-1.8.20 lib/facets/core/kernel/meta.rb
facets-1.8.49 lib/facets/core/kernel/meta.rb
facets-1.8.51 lib/facets/core/kernel/meta.rb
facets-1.8.54 lib/facets/core/kernel/meta.rb
facets-1.8.8 lib/facets/core/kernel/meta.rb