free_mutant/lib/mutant/support/method_object.rb
2013-02-02 16:32:13 +01:00

33 lines
596 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
end