doing 2.0.2.pre → 2.0.7.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +33 -1
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/bin/doing +143 -108
- data/doing.rdoc +98 -18
- data/example_plugin.rb +1 -1
- data/generate_completions.sh +1 -0
- data/lib/completion/_doing.zsh +179 -127
- data/lib/completion/doing.bash +60 -27
- data/lib/completion/doing.fish +74 -23
- data/lib/doing/cli_status.rb +4 -0
- data/lib/doing/configuration.rb +2 -0
- data/lib/doing/errors.rb +22 -15
- data/lib/doing/log_adapter.rb +27 -25
- data/lib/doing/plugin_manager.rb +1 -1
- data/lib/doing/plugins/export/json_export.rb +2 -2
- data/lib/doing/plugins/export/template_export.rb +1 -1
- data/lib/doing/string.rb +9 -7
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +134 -88
- data/lib/examples/commands/autotag.rb +63 -0
- data/lib/examples/commands/wiki.rb +1 -0
- data/lib/examples/plugins/say_export.rb +1 -1
- data/scripts/generate_bash_completions.rb +3 -2
- data/scripts/generate_fish_completions.rb +4 -1
- data/scripts/generate_zsh_completions.rb +44 -39
- metadata +3 -3
- data/doing.fish +0 -278
data/lib/doing/log_adapter.rb
CHANGED
@@ -18,17 +18,17 @@ module Doing
|
|
18
18
|
error: ::Logger::ERROR
|
19
19
|
}.freeze
|
20
20
|
|
21
|
-
COUNT_KEYS = [
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
COUNT_KEYS = %i[
|
22
|
+
added_tags
|
23
|
+
removed_tags
|
24
|
+
added
|
25
|
+
updated
|
26
|
+
deleted
|
27
|
+
completed
|
28
|
+
archived
|
29
|
+
moved
|
30
|
+
completed_archived
|
31
|
+
skipped
|
32
32
|
].freeze
|
33
33
|
|
34
34
|
#
|
@@ -293,6 +293,22 @@ module Doing
|
|
293
293
|
end
|
294
294
|
end
|
295
295
|
|
296
|
+
def output_results
|
297
|
+
total_counters
|
298
|
+
|
299
|
+
results = @results.select { |msg| write_message?(msg[:level]) }.uniq
|
300
|
+
|
301
|
+
if @logdev == $stdout
|
302
|
+
$stdout.print results.map {|res| res[:message].uncolor }.join("\n")
|
303
|
+
else
|
304
|
+
results.each do |msg|
|
305
|
+
@logdev.puts color_message(msg[:level], msg[:message])
|
306
|
+
end
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
private
|
311
|
+
|
296
312
|
def color_message(level, topic, message = nil, &block)
|
297
313
|
colors = Doing::Color
|
298
314
|
message = message(topic, message, &block)
|
@@ -324,19 +340,5 @@ module Doing
|
|
324
340
|
|
325
341
|
"#{prefix} #{message.highlight_tags}#{colors.reset}"
|
326
342
|
end
|
327
|
-
|
328
|
-
def output_results
|
329
|
-
total_counters
|
330
|
-
|
331
|
-
results = @results.select { |msg| write_message?(msg[:level]) }.uniq
|
332
|
-
|
333
|
-
if @logdev == $stdout
|
334
|
-
$stdout.print results.map {|res| res[:message].uncolor }.join("\n")
|
335
|
-
else
|
336
|
-
results.each do |msg|
|
337
|
-
@logdev.puts color_message(msg[:level], msg[:message])
|
338
|
-
end
|
339
|
-
end
|
340
|
-
end
|
341
343
|
end
|
342
344
|
end
|
data/lib/doing/plugin_manager.rb
CHANGED
@@ -113,7 +113,7 @@ module Doing
|
|
113
113
|
##
|
114
114
|
def list_plugins(options = {})
|
115
115
|
separator = options[:column] ? "\n" : "\t"
|
116
|
-
type = options[:type].nil? || options[:type] =~ /all/i ? 'all' :
|
116
|
+
type = options[:type].nil? || options[:type] =~ /all/i ? 'all' : valid_type(options[:type])
|
117
117
|
|
118
118
|
case type
|
119
119
|
when :import
|
@@ -56,7 +56,7 @@ module Doing
|
|
56
56
|
end_date: end_date,
|
57
57
|
title: title.strip, #+ " #{note}"
|
58
58
|
note: note.instance_of?(Array) ? note.to_s : note,
|
59
|
-
time: '%02d:%02d:%02d' % wwid.
|
59
|
+
time: '%02d:%02d:%02d' % wwid.format_time(interval),
|
60
60
|
tags: tags
|
61
61
|
}
|
62
62
|
|
@@ -68,7 +68,7 @@ module Doing
|
|
68
68
|
new_item = {
|
69
69
|
'id' => index + 1,
|
70
70
|
'content' => title.strip, #+ " #{note}"
|
71
|
-
'title' => title.strip + " (#{'%02d:%02d:%02d' % wwid.
|
71
|
+
'title' => title.strip + " (#{'%02d:%02d:%02d' % wwid.format_time(interval)})",
|
72
72
|
'start' => i.date.strftime('%F %T'),
|
73
73
|
'type' => 'box',
|
74
74
|
'style' => 'color:#4c566b;background-color:#d8dee9;'
|
@@ -132,7 +132,7 @@ module Doing
|
|
132
132
|
out += "#{output}\n"
|
133
133
|
end
|
134
134
|
# Doing.logger.debug('Template Export:', "#{items.count} items output to template #{opt[:template]}")
|
135
|
-
out += wwid.tag_times(format:
|
135
|
+
out += wwid.tag_times(format: wwid.config['timer_format'].to_sym, sort_by_name: opt[:sort_tags], sort_order: opt[:tag_order]) if opt[:totals]
|
136
136
|
out
|
137
137
|
end
|
138
138
|
|
data/lib/doing/string.rb
CHANGED
@@ -209,11 +209,12 @@ module Doing
|
|
209
209
|
title
|
210
210
|
end
|
211
211
|
|
212
|
-
def tag!(tag, value: nil, remove: false, rename_to: nil, regex: false)
|
213
|
-
replace tag(tag, value: value, remove: remove, rename_to: rename_to, regex: regex)
|
212
|
+
def tag!(tag, value: nil, remove: false, rename_to: nil, regex: false, single: false)
|
213
|
+
replace tag(tag, value: value, remove: remove, rename_to: rename_to, regex: regex, single: single)
|
214
214
|
end
|
215
215
|
|
216
|
-
def tag(tag, value: nil, remove: false, rename_to: nil, regex: false)
|
216
|
+
def tag(tag, value: nil, remove: false, rename_to: nil, regex: false, single: false)
|
217
|
+
log_level = single ? :info : :debug
|
217
218
|
title = dup
|
218
219
|
title.chomp!
|
219
220
|
tag = tag.sub(/^@?/, '')
|
@@ -241,10 +242,10 @@ module Doing
|
|
241
242
|
if rename_to
|
242
243
|
f = "@#{tag}".cyan
|
243
244
|
t = "@#{rename_to}".cyan
|
244
|
-
Doing.logger.
|
245
|
+
Doing.logger.write(log_level, 'Tag:', %(renamed #{f} to #{t} in "#{title}"))
|
245
246
|
else
|
246
247
|
f = "@#{tag}".cyan
|
247
|
-
Doing.logger.
|
248
|
+
Doing.logger.write(log_level, 'Tag:', %(removed #{f} from "#{title}"))
|
248
249
|
end
|
249
250
|
else
|
250
251
|
Doing.logger.debug('Skipped:', "not tagged #{"@#{tag}".cyan}")
|
@@ -255,14 +256,15 @@ module Doing
|
|
255
256
|
else
|
256
257
|
add = tag
|
257
258
|
add += "(#{value})" unless value.nil?
|
259
|
+
title.chomp!
|
258
260
|
title += " @#{add}"
|
259
261
|
|
260
262
|
title.dedup_tags!
|
261
263
|
title.chomp!
|
262
|
-
|
264
|
+
Doing.logger.write(log_level, 'Tag:', %(added #{('@' + tag).cyan} to "#{title}"))
|
263
265
|
end
|
264
266
|
|
265
|
-
title
|
267
|
+
title.gsub(/ +/, ' ')
|
266
268
|
end
|
267
269
|
|
268
270
|
##
|
data/lib/doing/version.rb
CHANGED