class Fraternity::Pledge

Attributes

accepted_at[RW]
email[RW]
first_name[RW]
id[RW]
initiation_number[RW]
invited_at[RW]
last_name[RW]
token[RW]

Public Class Methods

new(attributes={}) click to toggle source
# File lib/fraternity/pledge.rb, line 13
def initialize(attributes={})
  @id, @email, @first_name, @last_name, @token, @initiation_number, @invited_at, @accepted_at =
    attributes.values_at :id, :email, :first_name, :last_name, :token, :initiation_number, :invited_at, :accepted_at
end

Public Instance Methods

bid!() click to toggle source
# File lib/fraternity/pledge.rb, line 18
def bid!
  Bidder.new(self).bid!
end
cross!(token) click to toggle source
# File lib/fraternity/pledge.rb, line 30
def cross!(token)
  raise Fraternity::PerpError if !invited?
  raise Fraternity::TokenMismatchError.new(self.token, token) if token != self.token
  self.accepted_at = DateTime.now
  Repositories::PledgeRepository.persist self
end
crossed?() click to toggle source
# File lib/fraternity/pledge.rb, line 37
def crossed?
  !self.accepted_at.nil?
end
invite!() click to toggle source
# File lib/fraternity/pledge.rb, line 22
def invite!
  self.invited_at = DateTime.now
end
invited?() click to toggle source
# File lib/fraternity/pledge.rb, line 26
def invited?
  !self.invited_at.nil?
end
merge(attributes={}) click to toggle source
# File lib/fraternity/pledge.rb, line 45
def merge(attributes={})
  attributes.each_pair do |attribute, value|
    method = "#{attribute}="
    self.public_send method, value if self.respond_to? method
  end
end
ready?() click to toggle source
# File lib/fraternity/pledge.rb, line 41
def ready?
  self.invited? && !self.crossed?
end