Fix subject not being memoized when using described_class

This commit is contained in:
Michael Miller 2020-02-16 19:34:48 -07:00
parent 2aba67edae
commit dd48bf6f25

View file

@ -24,8 +24,16 @@ module Spectator
{{what}}
end
@%wrapper : ::Spectator::TypedValueWrapper({{what}})?
def subject(*args)
described_class.new(*args)
if (wrapper = @%wrapper)
wrapper.value
else
described_class.new(*args).tap do |value|
@%wrapper = ::Spectator::TypedValueWrapper.new(value)
end
end
end
{% else %}
def _spectator_implicit_subject(*args)