class HoodimusPrime::Project

Attributes

balance[R]
goal[R]
name[RW]

Public Class Methods

from_csv(string) click to toggle source
# File lib/hoodimus_prime/project.rb, line 19
def self.from_csv(string)
  name, balance, goal = string.split(',')
  Project.new(name, Integer(balance), Integer(goal))
end
new(name, balance=0, goal=0) click to toggle source
# File lib/hoodimus_prime/project.rb, line 12
def initialize(name, balance=0, goal=0)
  @name = name.upcase
  @balance = balance
  @goal = goal
  @new_pledges = Hash.new(0)
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/hoodimus_prime/project.rb, line 28
def <=>(other)
  other.short <=> short
end
each_new_pledge() { |pledge| ... } click to toggle source
# File lib/hoodimus_prime/project.rb, line 55
def each_new_pledge
  @new_pledges.each do |name, amount|
    yield Pledge.new(name, amount)
  end
end
fully_funded?() click to toggle source
# File lib/hoodimus_prime/project.rb, line 46
def fully_funded?
  total_funds_short <= 0
end
new_pledges(pledge) click to toggle source
# File lib/hoodimus_prime/project.rb, line 32
def new_pledges(pledge)
  @new_pledges[pledge.name] += pledge.amount
  puts "Project #{@name} received a #{pledge.name} pledge worth $#{pledge.amount}."
  puts "Project #{@name}'s pledges: #{@new_pledges}"
end
pledges() click to toggle source
# File lib/hoodimus_prime/project.rb, line 38
def pledges
  @new_pledges.values.reduce(0, :+)
end
to_s() click to toggle source
# File lib/hoodimus_prime/project.rb, line 24
def to_s
  "Project #{@name} has $#{total_funds} in funding towards a goal of $#{@goal}."
end
total_funds() click to toggle source
# File lib/hoodimus_prime/project.rb, line 51
def total_funds
  @balance + pledges
end
total_funds_short() click to toggle source
# File lib/hoodimus_prime/project.rb, line 42
def total_funds_short
  @goal - total_funds
end