class DeepDouble::RecursiveFakeMethod
Public Class Methods
new(fake_method)
click to toggle source
# File lib/deep_double/recursive_fake_method.rb, line 7 def initialize(fake_method) @fake_method = fake_method end
Public Instance Methods
call(*args)
click to toggle source
# File lib/deep_double/recursive_fake_method.rb, line 11 def call(*args) result = @fake_method.call(*args) special_case_transforms(result) end
to_proc()
click to toggle source
# File lib/deep_double/recursive_fake_method.rb, line 16 def to_proc method(:call).to_proc end
Private Instance Methods
special_case_transforms(result)
click to toggle source
# File lib/deep_double/recursive_fake_method.rb, line 22 def special_case_transforms(result) class_name = result.class.name.split('::').last case class_name when 'Hash' Double.new(result) # recursive case when 'Proc' result.call when 'Literal' result.value else result end end