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.
- checksums.yaml +15 -0
- data/README.rdoc +32 -9
- data/bin/syctask +2 -2
- data/lib/syctask/environment.rb +123 -76
- data/lib/syctask/schedule.rb +1 -0
- data/lib/syctask/task.rb +1 -0
- data/lib/syctask/version.rb +1 -1
- metadata +37 -45
checksums.yaml
ADDED
@@ -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=
|
data/README.rdoc
CHANGED
@@ -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
|
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
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
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
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
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
|
|
data/bin/syctask
CHANGED
@@ -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,
|
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 =
|
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",
|
data/lib/syctask/environment.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
120
|
-
|
121
|
-
|
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(
|
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(
|
234
|
+
update_tasks_log(dirs, excluded, new_id)
|
176
235
|
puts "-> Update planned tasks files"
|
177
|
-
update_planned_tasks(
|
236
|
+
update_planned_tasks(dirs, excluded, new_id)
|
178
237
|
puts "-> Move schedule files..."
|
179
|
-
move_time_schedule_files(
|
238
|
+
move_time_schedule_files(dirs, excluded)
|
180
239
|
puts "-> Update tracked task file..."
|
181
|
-
update_tracked_task(
|
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(
|
246
|
-
tasks_log_files(
|
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(
|
287
|
-
planned_tasks_files(
|
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(
|
313
|
-
@tracked = get_files(
|
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(
|
341
|
-
get_files(
|
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(
|
380
|
+
def planned_tasks_files(dirs, excluded=[])
|
346
381
|
pattern = %r{\d{4}-\d{2}-\d{2}_planned_tasks}
|
347
|
-
get_files(
|
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(
|
386
|
+
def time_schedule_files(dirs, excluded=[])
|
352
387
|
pattern = %r{\d{4}-\d{2}-\d{2}_time_schedule}
|
353
|
-
get_files(
|
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(
|
358
|
-
get_files(
|
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(
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
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(
|
400
|
-
|
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(
|
412
|
-
|
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(
|
423
|
-
|
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
|
data/lib/syctask/schedule.rb
CHANGED
@@ -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
|
data/lib/syctask/task.rb
CHANGED
data/lib/syctask/version.rb
CHANGED
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.
|
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:
|
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
|
342
|
-
which allows to specify additional
|
343
|
-
\n Time distances come in two flavors
|
344
|
-
long forms are\n
|
345
|
-
\
|
346
|
-
\ Examples for short forms are\n
|
347
|
-
\
|
348
|
-
|
349
|
-
\
|
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/
|
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/
|
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/
|
380
|
-
-
|
373
|
+
- lib/sycutil/console.rb
|
374
|
+
- lib/sycutil/console_timer.rb
|
381
375
|
- syctask.rdoc
|
382
|
-
|
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:
|
401
|
+
rubygems_version: 2.4.3
|
410
402
|
signing_key:
|
411
|
-
specification_version:
|
403
|
+
specification_version: 4
|
412
404
|
summary: Simple task organizer
|
413
405
|
test_files: []
|