class CrowdFund::FundRequest

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/crowdfund/fundrequest.rb, line 11
def initialize(name)
  @name = name
  @projects = []
end

Public Instance Methods

add_project(project) click to toggle source
# File lib/crowdfund/fundrequest.rb, line 16
def add_project(project)
  @projects << project
end
fully_funded_projects() click to toggle source
# File lib/crowdfund/fundrequest.rb, line 70
def fully_funded_projects
  @projects.select { |project| project.fully_funded? }
end
load_projects(from_file) click to toggle source
# File lib/crowdfund/fundrequest.rb, line 58
def load_projects(from_file)
  CSV.foreach(from_file) do |row|
    # funding (3rd attribute) is optional
    if row[2].nil?
      project = Project.new(row[0], row[1].to_i)
    else
      project = Project.new(row[0], row[1].to_i, row[2].to_i)
    end
    add_project(project)
  end
end
print_stats() click to toggle source
request_funding(rounds) click to toggle source
# File lib/crowdfund/fundrequest.rb, line 20
def request_funding(rounds)
  puts "There are #{@projects.size} projects in #{@name}:"
  @projects.each do |project|
    puts project.name
  end

  pledges = PledgePool::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(rounds) do |n|
    puts "\nRound #{n}:"
    @projects.each do |project|
      FundingRound.take_turn(project)
    end
  end
end
save_projects(to_file="projects.txt") click to toggle source
# File lib/crowdfund/fundrequest.rb, line 78
def save_projects(to_file="projects.txt")
  File.open(to_file, "w") do |file|
    print_under_funded_projects(file)
  end
end
under_funded_projects() click to toggle source
# File lib/crowdfund/fundrequest.rb, line 74
def under_funded_projects
  @projects.reject { |project| project.fully_funded? }
end

Private Instance Methods

print_fully_funded_projects(file=$stdout) click to toggle source
print_name_and_funding(project, file=$stdout) click to toggle source
print_under_funded_projects(file=$stdout) click to toggle source