#! /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)