#! /usr/bin/ruby require './lv' ITEM_KEY, my_items, an_item = 'Item:', [], nil VALUE_OF_TIME_KEY, value_of_time = 'Value of time:', nil if ARGV.length == 1 in_file = ARGV.at(0) else in_file = 'jim.dat' end IO.foreach(in_file) do |line| next if line[0].chr == '#' ar = line.chomp.split(/, /) if ar[0] == VALUE_OF_TIME_KEY value_of_time = ar[1].to_f elsif ar[0] == ITEM_KEY my_items << an_item if an_item an_item = Life_item.new(ar[1], ar[2], value_of_time) else an_item.add_maintainer(ar[0], ar[1].to_f, ar[2].to_i, ar[3].to_f) end end my_items << an_item File.open('my_items', 'w+') do |f| Marshal.dump(my_items, f) end my_items.clear File.open('my_items') do |f| my_items = Marshal.load(f) end my_items.each do |item| puts(item) puts end total_daily_maintenance_time, total_daily_maintenance_cost = 0.0, 0.0 my_items.each do |item| item.maintainers.each do |maintainer| total_daily_maintenance_time += maintainer.time_per_day() total_daily_maintenance_cost += maintainer.cost_per_day() end end s = <<EOS Total daily maintenance time = %.2f minutes ($%.2f of my time at $%.2f an hour) Total daily maintenance cost = $%.2f EOS printf(s, total_daily_maintenance_time * 60, total_daily_maintenance_time * value_of_time, value_of_time, total_daily_maintenance_cost)