free_mutant/lib/mutant/support/method_object.rb

34 lines
620 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
2012-08-15 22:07:45 -04:00
# 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
2013-06-14 14:54:02 -04:00
end # MethodObject
end # Mutant