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