class Fundraise::Project

Attributes

current_funding[R]
name[RW]
target_funding[R]

Public Class Methods

from_csv(string) click to toggle source
# File lib/fundraise/project.rb, line 19
def self.from_csv(string)
  name, target, funding = string.split(',')
  Project.new(name, Integer(target), Integer(funding))
end
new(project, target=200, funding=0) click to toggle source
# File lib/fundraise/project.rb, line 12
def initialize(project, target=200, funding=0)
  @name = project
  @current_funding = funding
  @target_funding = target
  @pledges = Hash.new(0)
end

Public Instance Methods

<=>(other_project) click to toggle source
# File lib/fundraise/project.rb, line 46
def <=>(other_project)
  funding_needed <=> other_project.funding_needed
end
each_pledge_received() { |pledge| ... } click to toggle source
# File lib/fundraise/project.rb, line 24
def each_pledge_received
 @pledges.each do |name, amount|
   pledge = Pledge.new(name, amount)
   yield pledge
 end
end
pledge_money() click to toggle source
# File lib/fundraise/project.rb, line 42
def pledge_money
 @pledges.values.reduce(0, :+)
end
pledge_received(pledge) click to toggle source
# File lib/fundraise/project.rb, line 31
def pledge_received(pledge)
 @pledges[pledge.name] += pledge.amount
 gain(pledge.amount, true)
 puts "#{@name} received a #{pledge.name} pledge worth $#{pledge.amount}."
 puts "#{@name}'s pledges: #{@pledges}"
end
to_s() click to toggle source
# File lib/fundraise/project.rb, line 38
def to_s
  "#{@name} has $#{@current_funding} in funding towards a goal of $#{@target_funding}."
end