class CrowdFund::Project

Attributes

amount[RW]
name[RW]
target[RW]

Public Class Methods

new(name, amount=0, target=1000) click to toggle source
# File lib/crowd_fund/project.rb, line 13
def initialize(name, amount=0, target=1000)
  @name = name.upcase
  @amount = amount
  @target = target
  @pledges_received = Hash.new(0)
end

Public Instance Methods

each_pledge_received() { |pledge| ... } click to toggle source
# File lib/crowd_fund/project.rb, line 24
def each_pledge_received
  @pledges_received.each do |name, value|
    yield Pledge.new(name, value)
  end
end
receive_pledge(pledge) click to toggle source
# File lib/crowd_fund/project.rb, line 30
def receive_pledge(pledge)
  @pledges_received[pledge.name] += pledge.value
  @amount += total_pledges
  puts "#{@name} received a #{pledge.name} pledge worth $#{pledge.value}."
  puts "Project #{@name} pledges: #{@pledges_received}"
end
total_pledges() click to toggle source
# File lib/crowd_fund/project.rb, line 20
def total_pledges
  @pledges_received.values.reduce(0, :+)
end