require 'fileutils'

class FileLogger

  attr_accessor :pomodoro_log_file

  def initialize log_file_path
    @pomodoro_log_file = log_file_path 
    FileUtils.touch pomodoro_log_file
  end

  def notify_start task
    add_separator_if_new_day
    File.open(pomodoro_log_file, "a") { |file| file.puts "#{Time.now.strftime('%Y/%m/%d %H:%M')} Pomodoro nr. #{sprintf("% 2d", task.pomodori + 1)} started:   #{task.text}" }
  end

  def notify_completed task
    File.open(pomodoro_log_file, "a") { |file| file.puts "#{Time.now.strftime('%Y/%m/%d %H:%M')} Pomodoro nr. #{sprintf("% 2d", task.pomodori + 1)} completed: #{task.text}" }
  end

  private

  def add_separator_if_new_day
    return if File.zero?(pomodoro_log_file)
    last_day = File.open(pomodoro_log_file, "r")  { |file| file.readlines.last.split(" ")[0]}
    today    = Time.now.strftime('%Y/%m/%d')
    File.open(pomodoro_log_file, "a") { |file| file.puts "\n-----------\n\n" } if last_day != today
  end
end