free_mutant/lib/mutant/support/method_object.rb
2013-06-14 21:12:10 +02:00

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