diff --git a/TODO b/TODO index 3111912..eef2ec9 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,13 @@ [1] Code the done or archive created:"Thu Jun 11 16:07:47 +0200 2009" [2] Code the filter command created:"Thu Jun 11 16:07:59 +0200 2009" -[3] Code the automatic sort command (it appear to be a complex function) created:"Thu Jun 11 16:08:27 +0200 2009" +[3] Code the automatic sort command (it appear to be a complex function) created:"Thu Jun 11 16:08:27 +0200 2009" [4] Code the modify and extend commands /1\ created:"Thu Jun 11 16:09:24 +0200 2009" +[5] Humanize DateTime output created:"Fri Jun 12 20:00:00 +0200 2009" +[6] Code a Start/Stop task could be multiple tasks in parallel created:"Fri Jun 12 20:00:00 +0200 2009" +[7] Code the standard questionning path for organising tasks created:"Fri Jun 12 20:00:00 +0200 2009" +[8] Code a notification system created:"Fri Jun 12 20:00:00 +0200 2009" +[9] Code the 2 minutes counter created:"Fri Jun 12 20:00:00 +0200 2009" +[10] Code the x5 method (10+2) created:"Fri Jun 12 20:00:00 +0200 2009" +[11] Code nice done task output (from last week, from last day...) created:"Fri Jun 12 20:00:00 +0200 2009" +[12] Code the hability to have repetitives tasks (every week, every month...) created:"Fri Jun 12 20:00:00 +0200 2009" +[13] Recode tag to be able to separate them with commas. created:"Fri Jun 12 20:00:00 +0200 2009" diff --git a/humanTimeOutput.rb b/humanTimeOutput.rb index f8534c7..030a9a6 100644 --- a/humanTimeOutput.rb +++ b/humanTimeOutput.rb @@ -2,24 +2,28 @@ require 'time' -module BetterOutput +module HumanTimeOutput + def self.included(base) + base.class_eval do + alias_method :original_to_s, :to_s unless method_defined?(:original_to_s) + # alias_method :to_s, :to_s_humanized + end + end + def is_today? selfTab=self.to_a nowTab=Time.now.to_a - return selfTab[4] == nowTab[4] and - selfTab[5] == nowTab[5] and - selfTab[6] == nowTab[6] + return selfTab[4] == nowTab[4] && + selfTab[5] == nowTab[5] && + selfTab[6] == nowTab[6] end - def to_s - now=Time.now - nowTab=now.to_a - selfTab=self.to_a - - if (self < now): # in the past - if is_today?: - else: # in the future - end + def to_s_humanized + if self.is_today? + return "today" + else + self.original_to_s + end end end -Time.send :include, BetterOutput +Time.send :include, HumanTimeOutput diff --git a/taskTime.rb b/taskTime.rb index 7040966..8c15062 100644 --- a/taskTime.rb +++ b/taskTime.rb @@ -4,6 +4,7 @@ require 'rubygems' require 'chronic' require 'time' +require 'humanTimeOutput.rb' class TaskTime @created # creation date of the task diff --git a/ytodo.rb b/ytodo.rb index 5f5e6d1..176f723 100644 --- a/ytodo.rb +++ b/ytodo.rb @@ -7,10 +7,12 @@ require 'readline' # # it lacks a read config from config file listeEnvVariables=[] + autosave=true listeEnvVariables<<='autosave' -defaultTaskFile="TODO" -listeEnvVariables<<='defaultTaskFile' + +saveFile="TODO" +listeEnvVariables<<='saveFile' def showVariable (varname) printf '%20s = ', varname @@ -24,8 +26,8 @@ if __FILE__ == $0: if not autosave: answer=Readline.readline('Do you want to save your changes? (y/n)',false) if not answer =~ /^no?$/: - puts "Changes saved in #{defaultTaskFile}" - todoList.save defaultTaskFile + puts "Changes saved in #{saveFile}" + todoList.save saveFile end end puts "\nGood Bye... See you later for another safe and productive day" @@ -33,13 +35,13 @@ if __FILE__ == $0: } todoList=TodoList.new - todoList.load defaultTaskFile + todoList.load saveFile while entry = Readline.readline('> ',true): case entry when /^(a|\+|add) / # ça commence par 'a ' '+ ' ou 'add ' todoList.addTask( Task.new(entry.sub(/^(a|\+|add) /,"")) ) if autosave: - todoList.save defaultTaskFile + todoList.save saveFile end when /^(l|list)( ?(\d*))?/ if $3.length>0: print "number "+$3 end @@ -48,7 +50,7 @@ if __FILE__ == $0: if $3 and $3.length>0: filename=$3 else - filename=defaultTaskFile + filename=saveFile end puts "saving to " + filename todoList.save filename @@ -56,7 +58,7 @@ if __FILE__ == $0: if $2.length>0: filename = $2 else - filename = defaultTaskFile + filename = saveFile end todoList.load filename when /^h(elp)?$/ @@ -107,11 +109,17 @@ Date: #due_date, #start_date,due_date eval "puts "+key end end + when /^set ([^= ]*)(=|\s*)(.*)$/ + # default all variable are strings + begin + eval $1+"="+$3 + end when /^q(uit)?$/ break when /^(!|cmd )(.+)$/ system( $2 ) # must be the last two entries + when /^$/ when /^.{1,10}$/ # if the entry is not # recognized and less than 10 characters @@ -122,7 +130,7 @@ Date: #due_date, #start_date,due_date # and not recognized then it is a new entry todoList.addTask( Task.new(entry) ) if autosave: - todoList.save defaultTaskFile + todoList.save saveFile end end end