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