# File lib/flexmock/mock_container.rb, line 112
112:     def flexmock(*args)
113:       name = nil
114:       quick_defs = {}
115:       domain_obj = nil
116:       while ! args.empty?
117:         case args.first
118:         when :base
119:           args.shift
120:           domain_obj = args.shift
121:         when String, Symbol
122:           name = args.shift.to_s
123:         when Hash
124:           quick_defs = args.shift
125:         else
126:           domain_obj = args.shift
127:         end
128:       end
129:       if domain_obj
130:         mock = flexmock_make_partial_proxy(domain_obj, name)
131:       else
132:         mock = FlexMock.new(name || "unknown")
133:         domain_obj = mock
134:       end
135:       flexmock_quick_define(mock, quick_defs)
136:       yield(mock) if block_given?
137:       flexmock_remember(mock)
138:       block_given? ? domain_obj : mock
139:     end