# File lib/flexmock/core.rb, line 105
105:   def method_missing(sym, *args, &block)
106:     enhanced_args = block_given? ? args + [block] : args
107:     call_record = CallRecord.new(sym, enhanced_args)
108:     @calls << call_record
109:     flexmock_wrap do
110:       if handler = @expectations[sym]
111:         handler.call(enhanced_args, call_record)
112:       elsif @base_class && @base_class.flexmock_defined?(sym)
113:         FlexMock.undefined
114:       elsif @ignore_missing
115:         FlexMock.undefined
116:       else
117:         super(sym, *args, &block)
118:       end
119:     end
120:   end