33 lines
620 B
Ruby
33 lines
620 B
Ruby
module Mutant
|
|
# A mixing to create method object semantics
|
|
module MethodObject
|
|
|
|
# Hook called when descendant is extended
|
|
#
|
|
# @param [Module|Class] descendant
|
|
#
|
|
# @return [undefined]
|
|
#
|
|
# @api private
|
|
#
|
|
def self.extended(descendant)
|
|
descendant.class_eval do
|
|
private_class_method :new
|
|
end
|
|
end
|
|
|
|
# Run the method object
|
|
#
|
|
# Not aliased to prevent problems from inheritance
|
|
#
|
|
# @return [Objecct]
|
|
# returns the created object
|
|
#
|
|
# @api private
|
|
#
|
|
def run(*args)
|
|
new(*args)
|
|
end
|
|
|
|
end # MethodObject
|
|
end # Mutant
|