class RSpec::Contracts::Message

Attributes

arguments[RW]
name[R]
response[RW]

Public Class Methods

new(name, arguments = nil) click to toggle source
# File lib/rspec/contracts/message.rb, line 9
def initialize(name, arguments = nil)
  @name = name
  @arguments = arguments
  @response = UnspecifiedResponse.new
end

Public Instance Methods

arguments_described_by?(message) click to toggle source
# File lib/rspec/contracts/message.rb, line 23
def arguments_described_by?(message)
  arguments.nil? || arguments == message.arguments
end
described_by?(message) click to toggle source
# File lib/rspec/contracts/message.rb, line 15
def described_by?(message)
  [:name, :arguments, :response].all? { |n| send "#{n}_described_by?", message }
end
name_described_by?(message) click to toggle source
# File lib/rspec/contracts/message.rb, line 19
def name_described_by?(message)
  message.name == name
end
response_described_by?(message) click to toggle source
# File lib/rspec/contracts/message.rb, line 27
def response_described_by?(message)
  response.described_by? message.response
end
to_hash() click to toggle source
# File lib/rspec/contracts/message.rb, line 35
def to_hash
  {
    :name => name,
    :arguments => arguments,
    :response => response.to_hash,
  }
end
without_response() click to toggle source
# File lib/rspec/contracts/message.rb, line 31
def without_response
  self.class.new name, arguments
end