Method: MiniSpec::InstanceAPI#stub
- Defined in:
- lib/minispec/api/instance/mocks/stubs.rb
#stub(object, stub, visibility = nil, &proc) ⇒ Object
stubbing given method and keeps original visibility
if a block given, it will receive original method as first argument and any passed parameters as rest arguments.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/minispec/api/instance/mocks/stubs.rb', line 21 def stub object, stub, visibility = nil, &proc [Symbol, String, Hash].include?(stub.class) || raise(ArgumentError, 'a Symbol, String or Hash expected') if stub.is_a?(Hash) return hash_stub(object, stub, visibility, &proc) elsif stub =~ /\./ return chained_stub(object, stub, visibility, &proc) end visibility ||= MiniSpec::Utils.method_visibility(object, stub) || :public stubs = (@__ms__stubs[object.__id__] ||= {}) stubs[stub] ||= MiniSpec::Mocks::Stub.new(object, @__ms__messages, @__ms__stubs__originals) stubs[stub].stubify(stub, visibility, &proc) stubs[stub] end |