class FundraisingProgram::FundRequest

Attributes

name[RW]

Public Class Methods

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

Public Instance Methods

add_project(project) click to toggle source
# File lib/fundraising_program/fundrequest.rb, line 31
def add_project(project)
        @projects << project
end
fully_funded_projects() click to toggle source
# File lib/fundraising_program/fundrequest.rb, line 62
def fully_funded_projects
        @projects.select { |project| project.fully_funded? }
end
load_projects(from_file) click to toggle source
# File lib/fundraising_program/fundrequest.rb, line 15
def load_projects(from_file)
        File.readlines(from_file).each do |line|
                add_project(Project.from_csv(line))
        end 
end
print_project_funding_left(project) click to toggle source
print_project_stats(project) click to toggle source
print_stats() click to toggle source
request_funding(rounds) click to toggle source
# File lib/fundraising_program/fundrequest.rb, line 35
def request_funding(rounds)
        pledges = PledgePool::PLEDGES
        puts "There are #{pledges.size} pledges:"
        pledges.each do |pledge|
                puts "\tA #{pledge.name} plage is worth #{pledge.amount}"
        end

        1.upto(rounds) do |round|
                puts "\nRequest Funding on Round: #{round}"
                @projects.each do |project|
                        FundingRound.take_turn(project)
                end
        end
end
save_under_funded_projects(to_file) click to toggle source
# File lib/fundraising_program/fundrequest.rb, line 21
def save_under_funded_projects(to_file)
        File.open(to_file, "w") do |file|
                file.puts "Under funded projecs:"
                under_funded_projects.each do |project|
                        file.puts print_project_stats(project) 
                        # file << print_project_stats(project)
                end
        end
end
total_pledges_amount() click to toggle source

def print_project_stats(project)

puts "#{project.name}".ljust(30,'.') + "#{project.funding_left}"

end

# File lib/fundraising_program/fundrequest.rb, line 97
def total_pledges_amount
        @projects.each.reduce(0) { |sum, project| sum += project.pledges_amount }
end
under_funded_projects() click to toggle source
# File lib/fundraising_program/fundrequest.rb, line 58
def under_funded_projects
        under_funded = @projects.reject { |project| project.fully_funded? }
end