class HoodimusPrime::Endgame
Attributes
title[R]
Public Class Methods
new(title)
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 12 def initialize(title) @title = title @projects = [] end
Public Instance Methods
add_project(a_project)
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 17 def add_project(a_project) @projects.push(a_project) end
fully_funded_projects()
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 60 def fully_funded_projects @projects.select { |project| project.fully_funded? } end
load_project(from_file)
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 26 def load_project(from_file) CSV.foreach(from_file) do |row| project = Project.new(row[0], row[1].to_i, row[2].to_i) add_project(project) end end
print_name(project)
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 56 def print_name(project) puts "#{project.name}" end
print_results()
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 68 def print_results puts "\n#{fully_funded_projects.size} Fully Funded Projects:" fully_funded_projects.each do |project| print_name(project) end puts "\n#{under_funded_projects.size} Under Funded Projects:" under_funded_projects.each do |project| print_name(project) end puts "\n#{under_funded_projects.size} projects are still short of funds:" sorted_under_funded_projects.each do |project| formatted_name = project.name.ljust(20, '.') puts "#{formatted_name} $#{project.short} short" end @projects.each do |project| puts "\n#{project.name}'s pledges:" project.each_new_pledge do |pledge| puts "$#{pledge.amount} in #{pledge.name} pledges" end puts "$#{project.pledges} in total pledges" end end
report(weeks)
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 33 def report(weeks) puts " There are #{@projects.size} projects in our current goal of #{@title}:" @projects.each do |project| puts project end pledges = PledgeClass::PLEDGES puts "\nThere are #{pledges.size} possible pledge amounts:" pledges.each do |pledge| puts "A #{pledge.name} pledge is worth $#{pledge.amount}." end 1.upto(weeks) do |weeks| puts "\nWeek #{weeks}:" @projects.each do |project| FundingRound.one_round(project) puts project end end end
save_underfunded(to_file="underfunded.txt")
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 98 def save_underfunded(to_file="underfunded.txt") File.open(to_file, "w") do |file| file.puts "#{@title} Underfunded Projects:" sorted_under_funded_projects.each do |project| formatted_name = project.name.ljust(20, '.') file.puts "#{formatted_name} $#{project.total_funds_short} short" end end end
sorted_under_funded_projects()
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 94 def sorted_under_funded_projects under_funded_projects.sort { |a, b| b.total_funds_short <=> a.total_funds_short} end
under_funded_projects()
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 64 def under_funded_projects @projects.reject { |project| project.fully_funded? } end
underfunded_entry(project)
click to toggle source
# File lib/hoodimus_prime/endgame.rb, line 21 def underfunded_entry(project) formatted_name = project.name.ljust(20, '.') "#{formatted_name} #{project.short}" end