free_mutant/lib/mutant/support/method_object.rb

32 lines
594 B
Ruby
Raw Normal View History

2012-08-15 22:07:45 -04:00
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