class StableMatching::PhaseRunner

Private Instance Methods

accept(proposer, proposed) click to toggle source
# File lib/stable-matching/phase_runner.rb, line 23
def accept(proposer, proposed)
  @logger.debug("'#{proposed.name}' accepts '#{proposer.name}'")

  proposed.accept_proposal_from!(proposer)
end
accept_better_proposal(proposer, proposed) click to toggle source
# File lib/stable-matching/phase_runner.rb, line 29
def accept_better_proposal(proposer, proposed)
  @logger.debug(
    "'#{proposed.name}' accepts '#{proposer.name}', "\
    "rejects '#{proposed.current_proposer.name}'"
  )

  proposed.reject!(proposed.current_proposer)
  proposed.accept_proposal_from!(proposer)
end
reject(proposer, proposed) click to toggle source
# File lib/stable-matching/phase_runner.rb, line 39
def reject(proposer, proposed)
  @logger.debug("'#{proposed.name}' rejects '#{proposer.name}'")
  proposed.reject!(proposer)
end
simulate_proposal(proposer, proposed) click to toggle source
# File lib/stable-matching/phase_runner.rb, line 10
def simulate_proposal(proposer, proposed)
  @logger.debug("'#{proposer.name}' proposes to '#{proposed.name}'")

  case
  when !proposed.accepted_proposal?
    accept(proposer, proposed)
  when proposed.would_prefer?(proposer)
    accept_better_proposal(proposer, proposed)
  else
    reject(proposer, proposed)
  end
end