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
print_results() click to toggle source
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