Sha256: 55f473d9e32506d97c4715a812a57b6e8935dfe664c07e607afc30f75cd5e250

Contents?: true

Size: 621 Bytes

Versions: 10

Compression:

Stored size: 621 Bytes

Contents

module Kernel

  # Easy access to an object qua class, otherwise known as the object's
  # singleton class. #qua_class can also take a block.
  #
  #   string = "Hello World"
  #
  #   string.qua_class do
  #     def important
  #        self + "!"
  #     end
  #   end
  #
  #   string.important  #=> "Hello World!"
  #
  # Yes, another one.
  #
  # CREDIT: Trans

  def qua_class(&block)
    if block_given?
      (class << self; self; end).class_eval(&block)
    else
      (class << self; self; end)
    end
  end

  # The +qua_class+ method can also be written +quaclass+.
  alias_method :quaclass, :qua_class

end

Version data entries

10 entries across 9 versions & 2 rubygems

Version Path
facets-glimmer-3.2.0 lib/core/facets/kernel/qua_class.rb
facets-3.1.0 lib/core/facets/kernel/qua_class.rb
facets-3.0.0 lib/core/facets/kernel/qua_class.rb
facets-2.9.3 lib/core/facets/kernel/qua_class.rb
facets-2.9.2 lib/core/facets/kernel/qua_class.rb
facets-2.9.2 src/core/facets/kernel/qua_class.rb
facets-2.9.1 lib/core/facets/kernel/qua_class.rb
facets-2.9.0 lib/core/facets/kernel/qua_class.rb
facets-2.9.0.pre.2 lib/core/facets/kernel/qua_class.rb
facets-2.9.0.pre.1 lib/core/facets/kernel/qua_class.rb