syc-task 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OWMwMWJhYWJhZGY4YTNjZGUyMmY1ODEwMTJhNzI4ZDZlZjYzOTI2NQ==
5
+ data.tar.gz: !binary |-
6
+ YTcyYzcyOThjZDFlYzQyOTgyNWI0YWZiYzNhMmE5NDMwNzFhNGE4Zg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YWYyYjM0Njk1MDM3ZGY2MTMwYWU1M2RjODZhYTE0MjAzOGIyNTc0YzkxNTVh
10
+ MDliMjVmODgyZDY5ZGVhMDg2ZWQyNzRiYzMyZTZmNDY5MDFmNmQwZmM3Yzdi
11
+ MjNjMTA0YTJiMmZlZmUxZTExMjE3YzI2MWMwNmEzMzhjNDgxMDk=
12
+ data.tar.gz: !binary |-
13
+ ZTYyNzAyNzAzNzdiYWZjYTI3MzU0N2YzYzU1NGNiZTRiNWY5NzhjMmY3MzA5
14
+ ZjBkYTJjMjE5N2FjZGE0YzQ4OTgyNmM1ZTJhNTY0ZjVhNTliMmY5M2E1MGJi
15
+ NWQ1YzAyODc0MzRiMmQ0ZDc4YWQ3MGZjMzZhZDg2NTdjZWI5OTU=
@@ -498,19 +498,42 @@ Version 0.1.15
498
498
 
499
499
  Version 0.2.0
500
500
  * Migrated from TestUnit to Minitest
501
- * Implemented ([![Gem Version](https://badge.fury.io/rb/timeleap.svg)](http://badge.fury.io/rb/timeleap) which allows to specify additional time distances to yesterday, today tomorrow.
501
+ * Implemented _timeleap_ {<img src="https://badge.fury.io/rb/timeleap.svg" alt="Gem Version" />}[http://badge.fury.io/rb/timeleap] which allows to specify additional time distances to yesterday, today tomorrow.
502
502
  Time distances come in two flavors as long and short forms.
503
+
503
504
  Examples for long forms are
504
- + yesterday|today|tomorrow
505
- + next|previous_monday|tuesday|...|sunday
506
- + monday|tuesday|...|sunday_in|back_1_week|month|year
507
- + in|back_10_days|weeks|months|years
505
+ - yesterday|today|tomorrow
506
+ - next|previous_monday|tuesday|...|sunday
507
+ - monday|tuesday|...|sunday_in|back_1_week|month|year
508
+ - in|back_10_days|weeks|months|years
509
+
508
510
  Examples for short forms are
509
- + y|tod|tom
510
- + n|pmo|tu|..|su
511
- + mo|tu|...|sui|b1w|m|y
512
- + i|b10d|w|m|y
511
+ - y|tod|tom
512
+ - n|pmo|tu|..|su
513
+ - mo|tu|...|sui|b1w|m|y
514
+ - i|b10d|w|m|y
513
515
 
516
+ Version 0.2.1
517
+ * Fix a bug in `syctask delete --plan`
518
+ * Add indicator '>' to task list when task contains notes
519
+ * Refactor migration from version 0.0.7 and when user has deleted system files.
520
+ The user can now specify the directories where the tasks are located and can
521
+ also define directories to be excluded. This is especially helpful to omit
522
+ search in large mounted directories, like from NAS servers.
523
+
524
+ ==Development
525
+ Pull from Github and then run
526
+
527
+ $ bundle install
528
+
529
+ Debugging the interface can be done with GLI_DEBUG:
530
+
531
+ $ bundle exec env GLI_DEBUG=true bin/syctask
532
+
533
+ Building the gemfile
534
+
535
+ $ gem build syctask.gemspec
536
+
514
537
  ==Tests
515
538
  The test files live in the folder test and start with test_.
516
539
 
@@ -102,7 +102,7 @@ command :info do |c|
102
102
  help_now! "Directory #{dir} does not exists" unless File.exists? dir
103
103
  id = options[:id]
104
104
  if id
105
- tasks = Syctask::get_files(dir, "#{id}.task")
105
+ tasks = Syctask::get_files(dir, [], /#{id}\.task/)
106
106
  tasks.each {|task| puts sprintf("%s", task).color(:green)}
107
107
  puts sprintf("--> No task with ID %s found", id).
108
108
  color(:red) if tasks.empty?
@@ -203,7 +203,7 @@ command :delete do |c|
203
203
  plan = options[:plan]
204
204
  filter = [:id]
205
205
  options.keep_if {|key, value| filter.find_index(key) and value != nil}
206
- date = extrac_time(plan)
206
+ date = extract_time(plan)
207
207
  if plan
208
208
  count = @planner.remove_tasks(date, options)
209
209
  STDOUT.puts sprintf("--> removed %d tasks from task plan of %s",
@@ -1,3 +1,5 @@
1
+ require 'find'
2
+
1
3
  module Syctask
2
4
 
3
5
  # System directory of syctask
@@ -89,26 +91,17 @@ module Syctask
89
91
  def check_environment
90
92
  FileUtils.mkdir_p WORK_DIR unless File.exists? WORK_DIR
91
93
  unless viable?
92
- unless get_files(File.expand_path("~"), "*.task").empty?
94
+ recover, whitelisted_dirs, blacklisted_dirs = initialize_or_recover_system
95
+ case recover
96
+ when 0
97
+ FileUtils.mkdir_p SYC_DIR unless File.exists? SYC_DIR
98
+ File.write(ID, "0")
99
+ when 1
93
100
  # Backup ARGV content
94
101
  args = []
95
102
  ARGV.each {|arg| args << arg} unless ARGV.empty?
96
103
  ARGV.clear
97
- puts
98
- puts "Warning:"
99
- puts "-------"
100
- puts "There are missing system files of syc-task, even though tasks "+
101
- "are available."
102
- puts "If you have upgraded from version 0.0.7 or below than this is "+
103
- "due to a changed\nfile structure. For changes in version "+
104
- "greater 0.0.7 see"
105
- puts "--> https://rubygems.org/gems/syc-task"
106
- puts "Or you have accidentially deleted system files. In both cases "+
107
- "re-indexing\nwill recover syc-task."
108
- print "Do you want to recover syc-task (y/n)? "
109
- answer = gets.chomp
110
- exit -1 unless answer.downcase == "y"
111
- reindex_tasks(File.expand_path("~"))
104
+ reindex_tasks(whitelisted_dirs, blacklisted_dirs)
112
105
  puts "Successfully recovered syc-task"
113
106
  puts "-> A log file of re-indexed tasks can be found at\n"+
114
107
  "#{RIDX_LOG}" if File.exists? RIDX_LOG
@@ -116,9 +109,9 @@ module Syctask
116
109
  gets
117
110
  # Restore ARGV content
118
111
  args.each {|arg| ARGV << arg} unless args.empty?
119
- else
120
- FileUtils.mkdir_p SYC_DIR unless File.exists? SYC_DIR
121
- File.write(ID, "0")
112
+ when 2
113
+ puts "o.k. - don't do nothing"
114
+ exit -1
122
115
  end
123
116
  end
124
117
  end
@@ -129,6 +122,73 @@ module Syctask
129
122
  File.exists? SYC_DIR and File.exists? ID
130
123
  end
131
124
 
125
+ # Asks the user whether this is a fresh install because of missing system
126
+ # files. If it is not a fresh install then this might be because of an upgrade
127
+ # to a version > 0.0.7 or the user accidentally has deleted the system files.
128
+ # If it is a fresh install the system files are created. Otherwise the user
129
+ # can select to search for task files and recover the system.
130
+ #
131
+ # intialize_or_recover_system #=> recover, whitelisted_dirs, blacklisted_dirs
132
+ # recover = 0 just creates the system files as it is fresh install
133
+ # recover = 1 recover task files
134
+ # recover = 2 abort, don't recover task files
135
+ # whitelisted_dirs = array of directories where to search for task files
136
+ # blacklisted_dirs = array of directories where not to search for task files
137
+ def initialize_or_recover_system
138
+ whitelisted_dirs = []
139
+ blacklisted_dirs = []
140
+
141
+ puts "This seems to be a fresh install because there are no system files "+
142
+ "available."
143
+ puts "* If this is a fresh install just hit 'y'. "
144
+ puts "* Otherwise hit 'n' to go to the recovery step."
145
+ print "Is this a fresh install (y/n)? "
146
+ answer = gets.chomp
147
+ if answer.downcase == "y"
148
+ [0, nil, nil]
149
+ else
150
+ puts
151
+ puts "If you have upgraded from version 0.0.7 or below than this is "+
152
+ "due to a changed\nfile structure. For changes in version "+
153
+ "greater 0.0.7 see"
154
+ puts "--> https://rubygems.org/gems/syc-task"
155
+ puts "Or you have accidentially deleted system files. In both cases "+
156
+ "re-indexing\nwill recover syc-task."
157
+ print "Do you want to recover syc-task (y/n)? "
158
+ answer = gets.chomp
159
+ if answer.downcase == "y"
160
+ puts
161
+ puts "If you know where your task files are located then you can "+
162
+ "specify the\ndirectories. Search starts in your home directory."
163
+ print "Do you want to specify the directories (y/n)? "
164
+ answer = gets.chomp
165
+ if answer.downcase == "y"
166
+ puts "Please enter directories, e.g. ~/.my-tasks ~/work-tasks"
167
+ whitelisted_dirs = gets.chomp.split(/\s+/)
168
+ .map { |f| File.expand_path(f) }
169
+ else
170
+ puts "You don't want to select task directories. It is adviced to "+
171
+ "exclude mounted \ndirectories as this might take very long to "+
172
+ "search all directories for task files. Also if it is no " +
173
+ "stable connection\n the recovery process might be aborted"
174
+ print "Do you want to exclude directories (y/n)? "
175
+ if answer.downcase == "y"
176
+ puts "Please enter directories, e.g. ~/mount ~/.no-tasks"
177
+ blacklisted_dirs = gets.chomp.split(/\s+/)
178
+ .map { |f| File.expand_path(f) }
179
+ else
180
+ whitelisted_dir = [File.expand_path("~")]
181
+ puts "Searching directories and all sub-directories starting in\n"+
182
+ "#{File.expand_path("~")}"
183
+ end
184
+ end
185
+ [1, whitelisted_dirs, blacklisted_dirs]
186
+ else
187
+ [2, nil, nil]
188
+ end
189
+ end
190
+ end
191
+
132
192
  # Re-indexing of tasks is done when tasks are available but SYC_DIR or ID file
133
193
  # is missing. The ID file contains the last issued task ID. The ID file is
134
194
  # referenced for obtaining the next ID for a new task. Re-indexing is done as
@@ -142,13 +202,12 @@ module Syctask
142
202
  # * Copy all system files planned_tasks, time_schedule, tasks.log, id to the
143
203
  # SYC_DIR directory if not already in the SYC_DIR directory. This should
144
204
  # only be if upgrading from version 0.0.7 and below.
145
- def reindex_tasks(root)
205
+ def reindex_tasks(dirs, excluded) #root)
146
206
  FileUtils.mkdir_p SYC_DIR unless File.exists? SYC_DIR
147
207
  new_id = {}
148
208
  to_be_renamed = {}
149
- root = File.expand_path(root)
150
209
  puts "-> Collect task files..."
151
- task_files = task_files(root)
210
+ task_files = task_files(dirs, excluded)
152
211
  puts "-> Restore ID counter..."
153
212
  initialize_id(task_files)
154
213
  print "-> Start re-indexing now..."
@@ -172,13 +231,13 @@ module Syctask
172
231
  to_be_renamed.each {|old_name,new_name| File.rename(old_name, new_name)}
173
232
  puts
174
233
  puts "-> Update task log file"
175
- update_tasks_log(root, new_id)
234
+ update_tasks_log(dirs, excluded, new_id)
176
235
  puts "-> Update planned tasks files"
177
- update_planned_tasks(root, new_id)
236
+ update_planned_tasks(dirs, excluded, new_id)
178
237
  puts "-> Move schedule files..."
179
- move_time_schedule_files(root)
238
+ move_time_schedule_files(dirs, excluded)
180
239
  puts "-> Update tracked task file..."
181
- update_tracked_task(root)
240
+ update_tracked_task(dirs, excluded)
182
241
  end
183
242
 
184
243
  # Re-indexes the tasks' IDs and renames the task files to match the new ID.
@@ -242,8 +301,8 @@ module Syctask
242
301
  end
243
302
 
244
303
  # Updates the tasks.log file if tasks are re-indexed with the task's new ids
245
- def update_tasks_log(dir, new_ids)
246
- tasks_log_files(dir).each do |file|
304
+ def update_tasks_log(dirs, excluded=[], new_ids)
305
+ tasks_log_files(dirs, excluded).each do |file|
247
306
  logs = File.readlines(file)
248
307
  logs.each_with_index do |log,i|
249
308
  type = log.scan(/^.*?(?=;)/)[0]
@@ -265,26 +324,14 @@ module Syctask
265
324
  end
266
325
  end
267
326
 
268
- # TODO delete
269
- def update_tasks_log_old(dir, old_id, new_id, file)
270
- old_entry = "#{old_id}-#{File.dirname(file)}"
271
- # Append '/' to dir name so already updated task is not subsequently updated
272
- new_entry = "#{new_id}-#{File.dirname(file)}/"
273
- @tasks_log_files = tasks_log_files(dir) if @tasks_log_files.nil?
274
- @tasks_log_files.each do |f|
275
- tasks_log = File.read(f).gsub(old_entry, new_entry)
276
- File.write(f, tasks_log)
277
- end
278
- end
279
-
280
327
  # Replaces the old ids with the new ids in the planned tasks files. A planned
281
328
  # tasks file has the form '2013-03-03_planned_tasks' and lives until syctask's
282
329
  # version 0.0.7 in ~/.tasks directory. From version 0.1.0 on the planned tasks
283
330
  # files live in the ~/.syc/syctask directory. So the calling method has the
284
331
  # responsibility to copy or move the planned tasks files after they have been
285
332
  # updated to the new planned tasks directory.
286
- def update_planned_tasks(dir, new_ids)
287
- planned_tasks_files(dir).each do |file|
333
+ def update_planned_tasks(dirs, excluded, new_ids)
334
+ planned_tasks_files(dirs, excluded).each do |file|
288
335
  tasks = File.readlines(file)
289
336
  tasks.each_with_index do |task,i|
290
337
  task_dir, old_id = task.chomp.split(',')
@@ -296,21 +343,9 @@ module Syctask
296
343
  end
297
344
  end
298
345
 
299
- # TODO delete
300
- def update_planned_tasks_old(dir, old_id, new_id, file)
301
- old_entry = "#{File.dirname(file)},#{old_id}"
302
- # Append '/' to dir name so already updated task is not subsequently updated
303
- new_entry = "#{File.dirname(file)}/,#{new_id}"
304
- @planned_tasks_files = planned_tasks_files(dir) if @planned_tasks_files.nil?
305
- @planned_tasks_files.each do |file|
306
- planned_tasks = File.read(file).gsub(old_entry, new_entry)
307
- File.write(file, planned_tasks)
308
- end
309
- end
310
-
311
346
  # Updates tracked_tasks file if task has been re-indexed with new ID
312
- def update_tracked_task(dir)
313
- @tracked = get_files(dir, "tracked_tasks") if @tracked.nil?
347
+ def update_tracked_task(dirs, excluded)
348
+ @tracked = get_files(dirs, excluded, /tracked_tasks/) if @tracked.nil?
314
349
  return if @tracked.empty?
315
350
  task = File.read(@tracked[0])
316
351
  if File.exists? RIDX_LOG
@@ -337,35 +372,41 @@ module Syctask
337
372
 
338
373
  # Retrieves all task files in and below the provided dir. Returns an array of
339
374
  # task files
340
- def task_files(dir)
341
- get_files(dir, "*.task").keep_if {|file| file.match /\d+\.task$/}
375
+ def task_files(dirs, excluded=[])
376
+ get_files(dirs, excluded, /\d+\.task$/)
342
377
  end
343
378
 
344
379
  # Retrieves all planned task files in and below the given directory
345
- def planned_tasks_files(dir)
380
+ def planned_tasks_files(dirs, excluded=[])
346
381
  pattern = %r{\d{4}-\d{2}-\d{2}_planned_tasks}
347
- get_files(dir, "*planned_tasks").keep_if {|f| f.match(pattern)}
382
+ get_files(dirs, excluded, pattern)
348
383
  end
349
384
 
350
385
  # Retrieves all schedule files in and below the given directory
351
- def time_schedule_files(dir)
386
+ def time_schedule_files(dirs, excluded=[])
352
387
  pattern = %r{\d{4}-\d{2}-\d{2}_time_schedule}
353
- get_files(dir, "*time_schedule").keep_if {|f| f.match(pattern)}
388
+ get_files(dirs, excluded, pattern)
354
389
  end
355
390
 
356
391
  # Retrieves als tasks.log files in and below the given directory
357
- def tasks_log_files(dir)
358
- get_files(dir, "tasks.log")
392
+ def tasks_log_files(dirs, excluded=[])
393
+ get_files(dirs, excluded, /tasks\.log/)
359
394
  end
360
395
 
361
396
  # Retrieves all files that meet the pattern in and below the given directory
362
- def get_files(dir, pattern)
363
- original_dir = File.expand_path(".")
364
- Dir.chdir(dir)
365
- files = Dir.glob("**/#{pattern}", File::FNM_DOTMATCH).map do |f|
366
- File.expand_path(f)
397
+ def get_files(included, excluded=[], pattern)
398
+ files = []
399
+ Find.find(*included) do |path|
400
+ if FileTest.directory?(path)
401
+ if excluded.include?(path)
402
+ Find.prune
403
+ else
404
+ next
405
+ end
406
+ else
407
+ files << File.expand_path(path) if File.basename(path) =~ pattern
408
+ end
367
409
  end
368
- Dir.chdir(original_dir)
369
410
  files
370
411
  end
371
412
 
@@ -396,8 +437,10 @@ module Syctask
396
437
 
397
438
  # Moves the tasks.log file to the system directory if not there. Should only
398
439
  # be if upgrading from version 0.0.7 and below
399
- def move_task_log_file(dir)
400
- @tasks_log_files = tasks_log_files(dir) if @tasks_log_files.nil?
440
+ def move_task_log_file(dirs, excluded)
441
+ if @tasks_log_files.nil?
442
+ @tasks_log_files = tasks_log_files(dirs, excluded)
443
+ end
401
444
  @tasks_log_files.each do |f|
402
445
  next if f == TASKS_LOG
403
446
  tasks_log = File.read(f)
@@ -408,8 +451,10 @@ module Syctask
408
451
 
409
452
  # Moves the planned tasks file to the system directory if not there. Should
410
453
  # only be if upgrading from version 0.0.7 and below
411
- def move_planned_tasks_files(dir)
412
- @planned_tasks_files = planned_tasks_files(dir) if @planned_tasks_files.nil?
454
+ def move_planned_tasks_files(dirs, excluded)
455
+ if @planned_tasks_files.nil?
456
+ @planned_tasks_files = planned_tasks_files(dirs, excluded)
457
+ end
413
458
  @planned_tasks_files.each do |file|
414
459
  to_file = "#{SYC_DIR}/#{File.basename(file)}"
415
460
  next if file == to_file
@@ -419,8 +464,10 @@ module Syctask
419
464
 
420
465
  # Moves the schedule file to the system directory if not there. Should
421
466
  # only be if upgrading from version 0.0.7 and below
422
- def move_time_schedule_files(dir)
423
- @time_schedule_files = time_schedule_files(dir) if @time_schedule_files.nil?
467
+ def move_time_schedule_files(dirs, excluded)
468
+ if @time_schedule_files.nil?
469
+ @time_schedule_files = time_schedule_files(dirs, excluded)
470
+ end
424
471
  @time_schedule_files.each do |file|
425
472
  to_file = "#{SYC_DIR}/#{File.basename(file)}"
426
473
  next if file == to_file
@@ -299,6 +299,7 @@ module Syctask
299
299
  offset = max_ord_size + max_id_size + 5
300
300
  title = split_lines(task.title, 80-offset)
301
301
  title = title.chomp.gsub(/\n/, "\n#{' '*offset}")
302
+ title << ">" if !task.options[:note].nil?
302
303
  task_list << sprintf("%#{max_ord_size}d: %#{max_id_size}s %s %s\n",
303
304
  i, task.id, hint, title).color(color)
304
305
  end
@@ -247,6 +247,7 @@ module Syctask
247
247
 
248
248
  title = split_lines(@title, 70)
249
249
  title = title.chomp.gsub(/\n/, "\n#{' '*7}")
250
+ title << ">" if !options[:note].nil?
250
251
  puts sprintf("%04d - %s", @id, title.bright).color(color)
251
252
 
252
253
  if @options[:description]
@@ -1,5 +1,5 @@
1
1
  # Syctask provides functions for managing tasks in a task list
2
2
  module Syctask
3
3
  #Holds the version number of syctask
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.1'
5
5
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syc-task
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pierre Sugar
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-06-13 00:00:00.000000000 Z
11
+ date: 2016-09-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rdoc
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: aruba
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: shoulda
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ! '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: gli
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - '='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - '='
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rainbow
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - '='
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - '='
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: timeleap
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ! '>='
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ! '>='
124
109
  - !ruby/object:Gem::Version
@@ -338,15 +323,23 @@ description: ! "= Simple task organizer\nsyctask can be used to create, plan, pr
338
323
  in the provided directory\n* Inspect command allows to list each today's unplanned
339
324
  task to edit, delete,\n mark as done or plan\n* Update command now has a duration
340
325
  flag to set the task's duration\n\nVersion 0.2.0\n* Migrated from TestUnit to Minitest\n*
341
- Implemented ([![Gem Version](https://badge.fury.io/rb/timeleap.svg)](http://badge.fury.io/rb/timeleap)
342
- which allows to specify additional time distances to yesterday, today tomorrow.
343
- \n Time distances come in two flavors as long and short forms.\n Examples for
344
- long forms are\n + yesterday|today|tomorrow\n + next|previous_monday|tuesday|...|sunday\n
345
- \ + monday|tuesday|...|sunday_in|back_1_week|month|year\n + in|back_10_days|weeks|months|years\n
346
- \ Examples for short forms are\n + y|tod|tom\n + n|pmo|tu|..|su\n + mo|tu|...|sui|b1w|m|y\n
347
- \ + i|b10d|w|m|y\n \n==Tests\nThe test files live in the folder test and start
348
- with test_.\n\nThere is a rake file available to run all tests\n\n $ rake test\n
349
- \ \n==License\nsyc-task is released under the {MIT License}[http://opensource.org/licenses/MIT]\n\n==Links\n*
326
+ Implemented _timeleap_ {<img src=\"https://badge.fury.io/rb/timeleap.svg\" alt=\"Gem
327
+ Version\" />}[http://badge.fury.io/rb/timeleap] which allows to specify additional
328
+ time distances to yesterday, today tomorrow. \n Time distances come in two flavors
329
+ as long and short forms.\n\n Examples for long forms are\n - yesterday|today|tomorrow\n
330
+ \ - next|previous_monday|tuesday|...|sunday\n - monday|tuesday|...|sunday_in|back_1_week|month|year\n
331
+ \ - in|back_10_days|weeks|months|years\n\n Examples for short forms are\n - y|tod|tom\n
332
+ \ - n|pmo|tu|..|su\n - mo|tu|...|sui|b1w|m|y\n - i|b10d|w|m|y\n \nVersion 0.2.1\n*
333
+ Fix a bug in `syctask delete --plan`\n* Add indicator '>' to task list when task
334
+ contains notes\n* Refactor migration from version 0.0.7 and when user has deleted
335
+ system files.\n The user can now specify the directories where the tasks are located
336
+ and can\n also define directories to be excluded. This is especially helpful to
337
+ omit \n search in large mounted directories, like from NAS servers.\n\n==Development\nPull
338
+ from Github and then run \n\n $ bundle install \n \nDebugging the interface
339
+ can be done with GLI_DEBUG: \n\n $ bundle exec env GLI_DEBUG=true bin/syctask\n\nBuilding
340
+ the gemfile\n\n $ gem build syctask.gemspec\n\n==Tests\nThe test files live in
341
+ the folder test and start with test_.\n\nThere is a rake file available to run all
342
+ tests\n\n $ rake test\n \n==License\nsyc-task is released under the {MIT License}[http://opensource.org/licenses/MIT]\n\n==Links\n*
350
343
  [http://www.github.com/sugaryourcoffee/syc-task] - Source code on GitHub\n* [http://syc.dyndns.org/drupal/wiki/syc-task]
351
344
  - Development notebook\n* [https://rubygems.org/gems/syc-backup] - RubyGems\n"
352
345
  email: pierre@sugaryourcoffee.de
@@ -358,30 +351,31 @@ extra_rdoc_files:
358
351
  - README.rdoc
359
352
  - syctask.rdoc
360
353
  files:
354
+ - README.rdoc
355
+ - bin/console_timer
361
356
  - bin/syctask
362
- - lib/syctask/version.rb
363
- - lib/syctask/task.rb
364
- - lib/syctask/task_service.rb
365
- - lib/syctask/task_planner.rb
366
- - lib/syctask/evaluator.rb
357
+ - lib/sycstring/string_util.rb
367
358
  - lib/syctask.rb
368
- - lib/syctask/task_scheduler.rb
359
+ - lib/syctask/environment.rb
360
+ - lib/syctask/evaluator.rb
369
361
  - lib/syctask/meeting.rb
370
- - lib/syctask/times.rb
371
362
  - lib/syctask/schedule.rb
372
- - lib/sycutil/console.rb
373
- - lib/sycutil/console_timer.rb
374
- - lib/syctask/environment.rb
375
- - lib/syctask/task_tracker.rb
376
363
  - lib/syctask/settings.rb
377
364
  - lib/syctask/statistics.rb
365
+ - lib/syctask/task.rb
366
+ - lib/syctask/task_planner.rb
367
+ - lib/syctask/task_scheduler.rb
368
+ - lib/syctask/task_service.rb
369
+ - lib/syctask/task_tracker.rb
370
+ - lib/syctask/times.rb
371
+ - lib/syctask/version.rb
378
372
  - lib/syctime/time_util.rb
379
- - lib/sycstring/string_util.rb
380
- - README.rdoc
373
+ - lib/sycutil/console.rb
374
+ - lib/sycutil/console_timer.rb
381
375
  - syctask.rdoc
382
- - bin/console_timer
383
- homepage: http://syc.dyndns.org/drupal/syc-task
376
+ homepage: https://github.com/sugaryourcoffee/syc-task
384
377
  licenses: []
378
+ metadata: {}
385
379
  post_install_message:
386
380
  rdoc_options:
387
381
  - --title
@@ -393,21 +387,19 @@ require_paths:
393
387
  - lib
394
388
  - lib
395
389
  required_ruby_version: !ruby/object:Gem::Requirement
396
- none: false
397
390
  requirements:
398
391
  - - ! '>='
399
392
  - !ruby/object:Gem::Version
400
393
  version: '0'
401
394
  required_rubygems_version: !ruby/object:Gem::Requirement
402
- none: false
403
395
  requirements:
404
396
  - - ! '>='
405
397
  - !ruby/object:Gem::Version
406
398
  version: '0'
407
399
  requirements: []
408
400
  rubyforge_project:
409
- rubygems_version: 1.8.23
401
+ rubygems_version: 2.4.3
410
402
  signing_key:
411
- specification_version: 3
403
+ specification_version: 4
412
404
  summary: Simple task organizer
413
405
  test_files: []