1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
module Naught
# Strategies for stubbing methods on null objects
#
# @api private
module StubStrategy
# Stub that returns nil from any method
module ReturnNil
# Define a method that returns nil
#
# @param subject [Module, Class] target to define method on
# @param name [Symbol] method name to define
# @return [void]
def self.apply(subject, name)
subject.define_method(name) { |*, **, &| nil }
end
end
# Stub that returns self from any method (black hole)
module ReturnSelf
# Define a method that returns self
#
# @param subject [Module, Class] target to define method on
# @param name [Symbol] method name to define
# @return [void]
def self.apply(subject, name)
subject.define_method(name) { |*, **, &| self }
end
end
end
end
|