syc-task 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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: []