1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot.git synced 2022-11-09 11:43:51 -05:00
thoughtbot--factory_bot/lib/factory_bot/null_object.rb
Geoff Hubbard a887d3d2eb Remove unused method respond_to_missing?
NullObject inherits from BasicObject.

BasicObject does not implement respond_to? or respond_to_missing?

Since we're inheriting from BasicObject we don't implement respond_to
and respond_to_missing? in the same way as we would if we were
inheriting from Object

Since respond_to_missing? will never be called, we can delete the unused
code.

In order to stop Rubocop complaining about this we need to disable the
Style/MissingRespondToMissing cop.

References:
https://ruby-doc.org/core-2.7.1/BasicObject.html
2020-06-02 12:18:04 -04:00

20 lines
483 B
Ruby

module FactoryBot
# @api private
class NullObject < ::BasicObject
def initialize(methods_to_respond_to)
@methods_to_respond_to = methods_to_respond_to.map(&:to_s)
end
def method_missing(name, *args, &block) # rubocop:disable Style/MissingRespondToMissing
if respond_to?(name)
nil
else
super
end
end
def respond_to?(method, _include_private = false)
@methods_to_respond_to.include? method.to_s
end
end
end