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.
- 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: []
|