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