Module: Object2module::ObjectExtensions

Included in:
Object
Defined in:
lib/object2module.rb

Instance Method Summary collapse

Instance Method Details

#__gen_extend_or_include__(extend_or_include, *objs) ⇒ Object

:nodoc:

Raises:

  • (ArgumentError)


28
29
30
31
32
33
34
35
36
# File 'lib/object2module.rb', line 28

def __gen_extend_or_include__(extend_or_include, *objs)  #:nodoc:
  raise ArgumentError, "wrong number of arguments (at least 1)" if objs.empty?

  objs.reverse.each { |mod|
    send(extend_or_include, mod)
  }

  self
end

#gen_extend(*objs) ⇒ Object

Adds to the singleton class of receiver the instance methods from each object given as a parameter.

Examples:

class C
  def hello
    "Hello from C.\n"
  end
end

class Klass
  def hello
    "Hello from Klass.\n"
  end
end

k = Klass.new
k.hello         #=> "Hello from Klass.\n"
k.gen_extend(C)   #=> #<Klass:0x401b3bc8>
k.hello         #=> "Hello from C.\n"

Parameters:

  • objs (Array)

    The array of objects to gen_extend

Returns:



60
61
62
# File 'lib/object2module.rb', line 60

def gen_extend(*objs)
  singleton_class.__gen_extend_or_include__(:gen_include_one, *objs)
end