class FundRaise::Project

Attributes

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

Public Class Methods

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

Public Instance Methods

<=>(other_project) click to toggle source
# File lib/fund_raise/project.rb, line 59
def <=>(other_project)
  needed_funding <=> other_project.needed_funding 
end
each_given_pledge() { |pledge| ... } click to toggle source
# File lib/fund_raise/project.rb, line 26
def each_given_pledge
  @pledges_received.each do |name, value|
    pledge = Pledge.new(name, value)
    yield pledge
  end
end
needed_funding() click to toggle source
# File lib/fund_raise/project.rb, line 33
def needed_funding
  @target_funding - @current_funding
end
pledge_money() click to toggle source
# File lib/fund_raise/project.rb, line 46
def pledge_money
  @pledges_received.values.reduce(0, :+)
end
pledge_received(pledge) click to toggle source
# File lib/fund_raise/project.rb, line 19
def pledge_received(pledge)
  @pledges_received[pledge.name] += pledge.value
  add_funds(pledge.value)
  puts "#{@name} received a #{pledge.name} pledge worth $#{pledge.value}."
  puts "#{@name}'s pledges: #{@pledges_received}"
end
time() click to toggle source
# File lib/fund_raise/project.rb, line 54
def time
 current_time = Time.new
 current_time.strftime("%A, %B, %d, %Y")
end
to_csv() click to toggle source
# File lib/fund_raise/project.rb, line 42
def to_csv
  "#{@name}, #{@target_funding}, #{@current_funding}"
end
to_s() click to toggle source
# File lib/fund_raise/project.rb, line 63
def to_s
  "#{@name} has $#{@current_funding} in funding towards a goal of $#{@target_funding}"
end
total_funding() click to toggle source
# File lib/fund_raise/project.rb, line 50
def total_funding  
  @current_funding + pledge_money
end