lib/bullit/file.rb in bullit-0.1.2 vs lib/bullit/file.rb in bullit-0.1.3

- old
+ new

@@ -3,11 +3,11 @@ require 'tty-prompt' require 'pry' require 'bullit/task' -module BulletJournal +module Bullit class File def self.generate_today_file(loud) today_file.dirname.mkpath unless today_file.dirname.exist? unless today_file.exist? @@ -26,19 +26,19 @@ end end def self.incomplete_tasks_from_yesterday(loud) if yesterday_file.exist? - file = YAML.load(yesterday_file.read) + file = yesterday_file_contents return {} if file[:tasks].empty? file[:tasks].each do |t| unless t[:complete] == true action = TTY::Prompt.new.select("\nWould you like to complete\n\n\t'#{t[:text]}'\n\nor migrate it to today's entry?\n", %w(complete migrate)) if action == 'complete' - t[:complete] = true + t = t.to_task.mark_as_complete end end end file[:tasks] = file[:tasks].reject{ |t| t[:complete] == true } @@ -56,27 +56,39 @@ def self.today_tasks YAML.load(today_file.read)[:tasks] end def self.add_task(text) - file = YAML.load(today_file.read) + file = today_file_contents if file[:tasks] == {} file[:tasks] = [ Task.new(text: text).to_h ] else file[:tasks] = today_tasks << Task.new(text: text).to_h end today_file.write(YAML.dump(file)) end + def self.delete_task(task_number) + file = today_file_contents + + unless file[:tasks].nil? + unless file[:tasks][task_number].nil? + file[:tasks].delete_at(task_number) + end + end + + today_file.write(YAML.dump(file)) + end + def self.complete_task(task_number) - file = YAML.load(today_file.read) + file = today_file_contents unless file[:tasks].nil? unless file[:tasks][task_number].nil? - file[:tasks][task_number] = Task.new(file[:tasks][task_number].to_h).mark_as_complete + file[:tasks][task_number] = file[:tasks][task_number].to_task.mark_as_complete today_file.write(YAML.dump(file)) end end end @@ -88,10 +100,14 @@ weekday = t.strftime "%u" Pathname("#{Dir.home}/.bullit/journal/#{year}/#{week}/#{weekday}.yaml") end + def self.today_file_contents + YAML.load(today_file.read) + end + def self.yesterday_file t = Time.now year = t.strftime "%Y" week = t.strftime "%W" @@ -101,8 +117,12 @@ if weekday > 1 Pathname("#{Dir.home}/.bullit/journal/#{year}/#{week}/#{(weekday - 1).to_s}.yaml") else Pathname("#{Dir.home}/.bullit/journal/#{year}/#{week-1}/7.yaml") end + end + + def self.yesterday_file_contents + YAML.load(yesterday_file.read) end end end \ No newline at end of file