module FlexMock::SpyDescribers

Public Instance Methods

describe_spy_expectation(spy, sym, args, options={}) click to toggle source
# File lib/flexmock/spy_describers.rb, line 4
def describe_spy_expectation(spy, sym, args, options={})
  describe_spy(spy, sym, args, options)
end
describe_spy_negative_expectation(spy, sym, args, options={}) click to toggle source
# File lib/flexmock/spy_describers.rb, line 8
def describe_spy_negative_expectation(spy, sym, args, options={})
  describe_spy(spy, sym, args, options, " NOT")
end

Private Instance Methods

block_description(needs_block) click to toggle source
# File lib/flexmock/spy_describers.rb, line 56
def block_description(needs_block)
  case needs_block
  when true
    " with a block"
  when false
    " without a block"
  else
    ""
  end
end
call_description(sym, args) click to toggle source
# File lib/flexmock/spy_describers.rb, line 67
def call_description(sym, args)
  if args
    "#{sym}(#{args.map { |o| o.inspect }.join(', ')})"
  else
    "#{sym}(...)"
  end
end
describe_calls(spy) click to toggle source
# File lib/flexmock/spy_describers.rb, line 26
def describe_calls(spy)
  result = ''
  if spy.flexmock_calls.empty?
    result << "No messages have been received\n"
  else
    result << "The following messages have been received:\n"
    spy.flexmock_calls.each do |call_record|
      result << "    " << call_description(call_record.method_name, call_record.args)
      result << " matched by " << call_record.expectation.description if call_record.expectation
      result << "\n"
    end
  end
  result
end
describe_spy(spy, sym, args, options, not_clause="") click to toggle source
# File lib/flexmock/spy_describers.rb, line 14
def describe_spy(spy, sym, args, options, not_clause="")
  result = "expected "
  result << call_description(sym, args)
  result << " to#{not_clause} be received by "
  result << spy.inspect
  result << times_description(options[:times])
  result << block_description(options[:with_block])
  result << ".\n"
  result << describe_calls(spy)
  result
end
times_description(times) click to toggle source
# File lib/flexmock/spy_describers.rb, line 41
def times_description(times)
  case times
  when 0
    " never"
  when 1
    " once"
  when 2
    " twice"
  when nil
    ""
  else
    " #{times} times"
  end
end