Method: FlexMock#method_missing

Defined in:
lib/flexmock/core.rb

#method_missing(sym, *args, **kw, &block) ⇒ Object

Handle missing methods by attempting to look up a handler.



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/flexmock/core.rb', line 140

def method_missing(sym, *args, **kw, &block)
  FlexMock.verify_mocking_allowed!

  call_record = CallRecord.new(sym, args, kw, block)
  @calls << call_record
  flexmock_wrap do
    if flexmock_closed?
      FlexMock.undefined
    elsif exp = flexmock_expectations_for(sym)
      exp.call(args, kw, block, call_record)
    elsif @base_class && @base_class.flexmock_defined?(sym)
      FlexMock.undefined
    elsif @ignore_missing
      FlexMock.undefined
    else
      super(sym, *args, **kw, &block)
    end
  end
end