doing 2.1.4pre → 2.1.7
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 +4 -4
- data/.yardoc/checksums +14 -13
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardopts +1 -1
- data/CHANGELOG.md +37 -1
- data/Gemfile.lock +3 -1
- data/README.md +5 -1
- data/bin/doing +192 -95
- data/docs/_config.yml +1 -0
- data/{doc → docs/doc}/Array.html +63 -1
- data/docs/doc/BooleanTermParser/Clause.html +293 -0
- data/docs/doc/BooleanTermParser/Operator.html +172 -0
- data/docs/doc/BooleanTermParser/Query.html +417 -0
- data/docs/doc/BooleanTermParser/QueryParser.html +135 -0
- data/docs/doc/BooleanTermParser/QueryTransformer.html +124 -0
- data/docs/doc/BooleanTermParser.html +115 -0
- data/docs/doc/Doing/CLIFormat.html +131 -0
- data/{doc → docs/doc}/Doing/Color.html +2 -2
- data/{doc → docs/doc}/Doing/Completion.html +1 -1
- data/{doc → docs/doc}/Doing/Configuration.html +117 -12
- data/{doc → docs/doc}/Doing/Content.html +0 -0
- data/{doc → docs/doc}/Doing/Errors/DoingNoTraceError.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/DoingRuntimeError.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/DoingStandardError.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/EmptyInput.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/NoResults.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/PluginException.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/UserCancelled.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/WrongCommand.html +1 -1
- data/{doc → docs/doc}/Doing/Errors.html +1 -1
- data/{doc → docs/doc}/Doing/Hooks.html +1 -1
- data/{doc → docs/doc}/Doing/Item.html +100 -73
- data/{doc → docs/doc}/Doing/Items.html +2 -2
- data/{doc → docs/doc}/Doing/LogAdapter.html +70 -1
- data/{doc → docs/doc}/Doing/Note.html +5 -134
- data/{doc → docs/doc}/Doing/Pager.html +1 -1
- data/{doc → docs/doc}/Doing/Plugins.html +431 -35
- data/{doc → docs/doc}/Doing/Prompt.html +1 -1
- data/{doc → docs/doc}/Doing/Section.html +1 -1
- data/docs/doc/Doing/TemplateString.html +713 -0
- data/docs/doc/Doing/Util/Backup.html +686 -0
- data/{doc → docs/doc}/Doing/Util.html +1 -1
- data/{doc → docs/doc}/Doing/WWID.html +5 -5
- data/{doc → docs/doc}/Doing/WWIDFile.html +0 -0
- data/{doc → docs/doc}/Doing.html +4 -4
- data/{doc → docs/doc}/GLI/Commands/MarkdownDocumentListener.html +1 -1
- data/{doc → docs/doc}/GLI/Commands.html +1 -1
- data/{doc → docs/doc}/GLI.html +1 -1
- data/{doc → docs/doc}/Hash.html +1 -1
- data/docs/doc/PhraseParser/Operator.html +172 -0
- data/docs/doc/PhraseParser/PhraseClause.html +303 -0
- data/docs/doc/PhraseParser/Query.html +495 -0
- data/docs/doc/PhraseParser/QueryParser.html +136 -0
- data/docs/doc/PhraseParser/QueryTransformer.html +124 -0
- data/docs/doc/PhraseParser/TermClause.html +293 -0
- data/docs/doc/PhraseParser.html +115 -0
- data/{doc → docs/doc}/Status.html +1 -1
- data/{doc → docs/doc}/String.html +182 -12
- data/{doc → docs/doc}/Symbol.html +35 -1
- data/{doc → docs/doc}/Time.html +1 -1
- data/{doc → docs/doc}/_index.html +21 -14
- data/{doc → docs/doc}/class_list.html +1 -1
- data/{doc → docs/doc}/css/common.css +0 -0
- data/{doc → docs/doc}/css/full_list.css +0 -0
- data/{doc → docs/doc}/css/style.css +0 -0
- data/{doc → docs/doc}/file.README.html +6 -2
- data/{doc → docs/doc}/file_list.html +0 -0
- data/{doc → docs/doc}/frames.html +0 -0
- data/{doc → docs/doc}/index.html +6 -2
- data/{doc → docs/doc}/js/app.js +0 -0
- data/{doc → docs/doc}/js/full_list.js +0 -0
- data/{doc → docs/doc}/js/jquery.js +0 -0
- data/{doc → docs/doc}/method_list.html +313 -161
- data/{doc → docs/doc}/top-level-namespace.html +1 -1
- data/docs/index.md +60 -0
- data/doing.gemspec +1 -0
- data/doing.rdoc +74 -15
- data/example_plugin.rb +3 -1
- data/lib/completion/_doing.zsh +53 -41
- data/lib/completion/doing.bash +17 -6
- data/lib/completion/doing.fish +321 -2
- data/lib/doing/array.rb +9 -0
- data/lib/doing/completion/fish_completion.rb +46 -3
- data/lib/doing/completion/zsh_completion.rb +1 -1
- data/lib/doing/configuration.rb +33 -11
- data/lib/doing/item.rb +12 -3
- data/lib/doing/log_adapter.rb +28 -0
- data/lib/doing/note.rb +31 -30
- data/lib/doing/plugin_manager.rb +84 -21
- data/lib/doing/plugins/export/dayone_export.rb +209 -0
- data/lib/doing/plugins/export/html_export.rb +2 -2
- data/lib/doing/plugins/export/json_export.rb +1 -0
- data/lib/doing/plugins/export/markdown_export.rb +1 -1
- data/lib/doing/plugins/export/template_export.rb +90 -85
- data/lib/doing/prompt.rb +9 -6
- data/lib/doing/string.rb +68 -27
- data/lib/doing/symbol.rb +4 -0
- data/lib/doing/template_string.rb +197 -0
- data/lib/doing/util.rb +4 -2
- data/lib/doing/util_backup.rb +55 -3
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +37 -22
- data/lib/doing.rb +3 -0
- data/lib/examples/plugins/say_export.rb +1 -1
- data/lib/examples/plugins/wiki_export/wiki_export.rb +3 -3
- data/lib/templates/doing-dayone-entry.erb +6 -0
- data/lib/templates/doing-dayone.erb +5 -0
- metadata +95 -53
data/lib/doing/util_backup.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
require 'zlib'
|
|
2
3
|
|
|
3
4
|
module Doing
|
|
4
5
|
module Util
|
|
@@ -29,6 +30,7 @@ module Doing
|
|
|
29
30
|
## different from default
|
|
30
31
|
##
|
|
31
32
|
def restore_last_backup(filename = nil, count: 1)
|
|
33
|
+
Doing.logger.benchmark(:restore_backup, :start)
|
|
32
34
|
filename ||= Doing.config.settings['doing_file']
|
|
33
35
|
|
|
34
36
|
result = get_backups(filename).slice(count - 1)
|
|
@@ -40,6 +42,7 @@ module Doing
|
|
|
40
42
|
FileUtils.mv(backup_file, filename)
|
|
41
43
|
prune_backups_after(File.basename(backup_file))
|
|
42
44
|
Doing.logger.warn('File update:', "restored from #{result}")
|
|
45
|
+
Doing.logger.benchmark(:restore_backup, :finish)
|
|
43
46
|
end
|
|
44
47
|
|
|
45
48
|
##
|
|
@@ -79,6 +82,44 @@ module Doing
|
|
|
79
82
|
end
|
|
80
83
|
end
|
|
81
84
|
|
|
85
|
+
##
|
|
86
|
+
## Select from recent undos. If a filename is
|
|
87
|
+
## provided, only backups of that filename will be used.
|
|
88
|
+
##
|
|
89
|
+
## @param filename The filename to restore
|
|
90
|
+
##
|
|
91
|
+
def select_redo(filename = nil)
|
|
92
|
+
filename ||= Doing.config.settings['doing_file']
|
|
93
|
+
|
|
94
|
+
undones = Dir.glob("undone*#{File.basename(filename)}", base: backup_dir).sort
|
|
95
|
+
|
|
96
|
+
raise DoingRuntimeError, 'End of redo history' if undones.empty?
|
|
97
|
+
|
|
98
|
+
total = undones.count
|
|
99
|
+
options = undones.each_with_object([]) do |file, arr|
|
|
100
|
+
d, _base = date_of_backup(file)
|
|
101
|
+
next if d.nil?
|
|
102
|
+
|
|
103
|
+
arr.push("#{d.time_ago}\t#{File.join(backup_dir, file)}")
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
backup_file = show_menu(options, filename)
|
|
107
|
+
idx = undones.index(File.basename(backup_file))
|
|
108
|
+
skipped = undones.slice!(idx, undones.count - idx)
|
|
109
|
+
undone = skipped.shift
|
|
110
|
+
|
|
111
|
+
redo_file = File.join(backup_dir, undone)
|
|
112
|
+
|
|
113
|
+
FileUtils.move(redo_file, filename)
|
|
114
|
+
|
|
115
|
+
skipped.each do |f|
|
|
116
|
+
FileUtils.mv(File.join(backup_dir, f), File.join(backup_dir, f.sub(/^undone/, '')))
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
Doing.logger.warn('File update:', "restored undo step #{idx}/#{total}")
|
|
120
|
+
Doing.logger.debug('Backup:', "#{total - skipped.count - 1} redos remaining")
|
|
121
|
+
end
|
|
122
|
+
|
|
82
123
|
##
|
|
83
124
|
## Select from recent backups. If a filename is
|
|
84
125
|
## provided, only backups of that filename will be used.
|
|
@@ -90,6 +131,7 @@ module Doing
|
|
|
90
131
|
|
|
91
132
|
options = get_backups(filename).each_with_object([]) do |file, arr|
|
|
92
133
|
d, _base = date_of_backup(file)
|
|
134
|
+
next if d.nil?
|
|
93
135
|
arr.push("#{d.time_ago}\t#{File.join(backup_dir, file)}")
|
|
94
136
|
end
|
|
95
137
|
|
|
@@ -123,13 +165,16 @@ module Doing
|
|
|
123
165
|
end
|
|
124
166
|
|
|
125
167
|
result = Doing::Prompt.choose_from(options,
|
|
168
|
+
prompt: 'Select a backup to restore',
|
|
126
169
|
sorted: false,
|
|
127
170
|
fzf_args: [
|
|
128
171
|
'--delimiter="\t"',
|
|
129
172
|
'--with-nth=1',
|
|
130
173
|
%(--preview='#{preview} "#{filename}" {2} #{pipe}'),
|
|
131
174
|
'--disabled',
|
|
132
|
-
'--
|
|
175
|
+
'--height=10',
|
|
176
|
+
'--preview-window="right,70%,nowrap,follow"',
|
|
177
|
+
'--header="Select a revision to restore"'
|
|
133
178
|
])
|
|
134
179
|
raise UserCancelled unless result
|
|
135
180
|
|
|
@@ -143,6 +188,7 @@ module Doing
|
|
|
143
188
|
## @param content The data to back up
|
|
144
189
|
##
|
|
145
190
|
def write_backup(filename = nil)
|
|
191
|
+
Doing.logger.benchmark(:_write_backup, :start)
|
|
146
192
|
filename ||= Doing.config.settings['doing_file']
|
|
147
193
|
|
|
148
194
|
unless File.exist?(filename)
|
|
@@ -152,11 +198,15 @@ module Doing
|
|
|
152
198
|
|
|
153
199
|
backup_file = File.join(backup_dir, "#{timestamp_filename}___#{File.basename(filename)}")
|
|
154
200
|
# compressed = Zlib::Deflate.deflate(content)
|
|
201
|
+
# Zlib::GzipWriter.open(backup_file + '.gz') do |gz|
|
|
202
|
+
# gz.write(IO.read(filename))
|
|
203
|
+
# end
|
|
155
204
|
|
|
156
205
|
FileUtils.cp(filename, backup_file)
|
|
157
206
|
|
|
158
|
-
prune_backups(filename,
|
|
207
|
+
prune_backups(filename, Doing.config.settings['history_size'].to_i)
|
|
159
208
|
clear_undone(filename)
|
|
209
|
+
Doing.logger.benchmark(:_write_backup, :finish)
|
|
160
210
|
end
|
|
161
211
|
|
|
162
212
|
private
|
|
@@ -183,7 +233,7 @@ module Doing
|
|
|
183
233
|
## @param filename The filename
|
|
184
234
|
##
|
|
185
235
|
def date_of_backup(filename)
|
|
186
|
-
m = filename.match(/^(?<date>\d{4}-\d{2}-\d{2})_(?<time>\d{2}\.\d{2}\.\d{2})___(?<file>.*?)$/)
|
|
236
|
+
m = filename.match(/^(?:undone)?(?<date>\d{4}-\d{2}-\d{2})_(?<time>\d{2}\.\d{2}\.\d{2})___(?<file>.*?)$/)
|
|
187
237
|
return nil if m.nil?
|
|
188
238
|
|
|
189
239
|
[Time.parse("#{m['date']} #{m['time'].gsub(/\./, ':')}"), m['file']]
|
|
@@ -220,6 +270,8 @@ module Doing
|
|
|
220
270
|
##
|
|
221
271
|
def prune_backups_after(filename)
|
|
222
272
|
target_date, base = date_of_backup(filename)
|
|
273
|
+
return if target_date.nil?
|
|
274
|
+
|
|
223
275
|
counter = 0
|
|
224
276
|
get_backups(base).each do |file|
|
|
225
277
|
date, _base = date_of_backup(file)
|
data/lib/doing/version.rb
CHANGED
data/lib/doing/wwid.rb
CHANGED
|
@@ -262,7 +262,7 @@ module Doing
|
|
|
262
262
|
return frag.cap_first if @content.section?(frag)
|
|
263
263
|
|
|
264
264
|
section = nil
|
|
265
|
-
re = frag.
|
|
265
|
+
re = frag.to_rx(distance: 2, case_type: :ignore)
|
|
266
266
|
sections.each do |sect|
|
|
267
267
|
next unless sect =~ /#{re}/i
|
|
268
268
|
|
|
@@ -304,7 +304,7 @@ module Doing
|
|
|
304
304
|
def guess_view(frag, guessed: false, suggest: false)
|
|
305
305
|
views.each { |view| return view if frag.downcase == view.downcase }
|
|
306
306
|
view = false
|
|
307
|
-
re = frag.
|
|
307
|
+
re = frag.to_rx(distance: 2, case_type: :ignore)
|
|
308
308
|
views.each do |v|
|
|
309
309
|
next unless v =~ /#{re}/i
|
|
310
310
|
|
|
@@ -780,7 +780,7 @@ module Doing
|
|
|
780
780
|
|
|
781
781
|
keep
|
|
782
782
|
end
|
|
783
|
-
count = opt[:count]&.positive? ? opt[:count] : filtered_items.
|
|
783
|
+
count = opt[:count].to_i&.positive? ? opt[:count].to_i : filtered_items.count
|
|
784
784
|
|
|
785
785
|
output = Items.new
|
|
786
786
|
|
|
@@ -1427,11 +1427,11 @@ module Doing
|
|
|
1427
1427
|
##
|
|
1428
1428
|
## @return [String] The selected tag name
|
|
1429
1429
|
##
|
|
1430
|
-
def choose_tag(section = 'All', include_all: false)
|
|
1431
|
-
items
|
|
1430
|
+
def choose_tag(section = 'All', items: nil, include_all: false)
|
|
1431
|
+
items ||= @content.in_section(section)
|
|
1432
1432
|
tags = all_tags(items, counts: true).map { |t, c| "@#{t} (#{c})" }
|
|
1433
1433
|
tags.unshift('No tag filter') if include_all
|
|
1434
|
-
choice = Prompt.choose_from(tags, sorted: false, multiple: true, prompt: 'Choose
|
|
1434
|
+
choice = Prompt.choose_from(tags, sorted: false, multiple: true, prompt: 'Choose tag(s) > ', fzf_args: ['--height=60%'])
|
|
1435
1435
|
choice ? choice.split(/\n/).map { |t| t.strip.sub(/ \(.*?\)$/, '')}.join(' ') : choice
|
|
1436
1436
|
end
|
|
1437
1437
|
|
|
@@ -1482,17 +1482,25 @@ module Doing
|
|
|
1482
1482
|
##
|
|
1483
1483
|
## @param opt [Hash] Additional Options
|
|
1484
1484
|
##
|
|
1485
|
-
def list_section(opt = {})
|
|
1485
|
+
def list_section(opt = {}, items: Items.new)
|
|
1486
1486
|
opt[:config_template] ||= 'default'
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1487
|
+
|
|
1488
|
+
tpl_cfg = @config.dig('templates', opt[:config_template])
|
|
1489
|
+
|
|
1490
|
+
cfg = if opt[:view_template]
|
|
1491
|
+
@config.dig('views', opt[:view_template]).deep_merge(tpl_cfg)
|
|
1492
|
+
else
|
|
1493
|
+
tpl_cfg
|
|
1494
|
+
end
|
|
1495
|
+
|
|
1496
|
+
cfg.deep_merge({
|
|
1497
|
+
'wrap_width' => @config['wrap_width'] || 0,
|
|
1498
|
+
'date_format' => @config['default_date_format'],
|
|
1499
|
+
'order' => @config['order'] || 'asc',
|
|
1500
|
+
'tags_color' => @config['tags_color'],
|
|
1501
|
+
'duration' => @config['duration'],
|
|
1502
|
+
'interval_format' => @config['interval_format']
|
|
1503
|
+
})
|
|
1496
1504
|
opt[:duration] ||= cfg['duration'] || false
|
|
1497
1505
|
opt[:interval_format] ||= cfg['interval_format'] || 'text'
|
|
1498
1506
|
opt[:count] ||= 0
|
|
@@ -1523,9 +1531,9 @@ module Doing
|
|
|
1523
1531
|
end
|
|
1524
1532
|
end
|
|
1525
1533
|
|
|
1526
|
-
items = filter_items(
|
|
1534
|
+
items = filter_items(items, opt: opt)
|
|
1527
1535
|
|
|
1528
|
-
items.reverse!
|
|
1536
|
+
items.reverse! unless opt[:order] =~ /^d/i
|
|
1529
1537
|
|
|
1530
1538
|
if opt[:interactive]
|
|
1531
1539
|
opt[:menu] = !opt[:force]
|
|
@@ -1712,10 +1720,16 @@ module Doing
|
|
|
1712
1720
|
section ||= @config['current_section']
|
|
1713
1721
|
section = guess_section(section)
|
|
1714
1722
|
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1723
|
+
opt[:section] = section
|
|
1724
|
+
opt[:wrap_width] = cfg['wrap_width']
|
|
1725
|
+
opt[:count] = count
|
|
1726
|
+
opt[:format] = cfg['date_format']
|
|
1727
|
+
opt[:template] = cfg['template']
|
|
1728
|
+
opt[:order] = 'asc'
|
|
1729
|
+
opt[:times] = times
|
|
1730
|
+
opt[:config_template] = 'recent'
|
|
1731
|
+
|
|
1732
|
+
list_section(opt)
|
|
1719
1733
|
end
|
|
1720
1734
|
|
|
1721
1735
|
##
|
|
@@ -1924,6 +1938,7 @@ EOS
|
|
|
1924
1938
|
output + tail
|
|
1925
1939
|
when :markdown
|
|
1926
1940
|
pad = sorted_tags_data.map {|k, v| k }.group_by(&:size).max.last[0].length
|
|
1941
|
+
pad = 7 if pad < 7
|
|
1927
1942
|
output = <<~EOS
|
|
1928
1943
|
| #{' ' * (pad - 7) }project | time |
|
|
1929
1944
|
| #{'-' * (pad - 1)}: | :------- |
|
data/lib/doing.rb
CHANGED
|
@@ -8,10 +8,12 @@ require 'csv'
|
|
|
8
8
|
require 'tempfile'
|
|
9
9
|
require 'zlib'
|
|
10
10
|
require 'base64'
|
|
11
|
+
|
|
11
12
|
require 'chronic'
|
|
12
13
|
require 'tty-link'
|
|
13
14
|
require 'tty-which'
|
|
14
15
|
require 'tty-markdown'
|
|
16
|
+
require 'plist'
|
|
15
17
|
# require 'amatch'
|
|
16
18
|
require 'haml'
|
|
17
19
|
require 'json'
|
|
@@ -19,6 +21,7 @@ require 'logger'
|
|
|
19
21
|
require 'safe_yaml/load'
|
|
20
22
|
require 'doing/hash'
|
|
21
23
|
require 'doing/colors'
|
|
24
|
+
require 'doing/template_string'
|
|
22
25
|
require 'doing/string'
|
|
23
26
|
require 'doing/string_chronify'
|
|
24
27
|
require 'doing/time'
|
|
@@ -11,9 +11,9 @@ module Doing
|
|
|
11
11
|
{
|
|
12
12
|
trigger: 'wiki',
|
|
13
13
|
templates: [
|
|
14
|
-
{ name: 'wiki_page', trigger: 'wiki.?page' },
|
|
15
|
-
{ name: 'wiki_index', trigger: 'wiki.?index' },
|
|
16
|
-
{ name: 'wiki_css', trigger: 'wiki.?css' }
|
|
14
|
+
{ name: 'wiki_page', trigger: 'wiki.?page', format: 'haml', filename: 'wiki.haml' },
|
|
15
|
+
{ name: 'wiki_index', trigger: 'wiki.?index', format: 'haml', filename: 'wiki_index.haml' },
|
|
16
|
+
{ name: 'wiki_css', trigger: 'wiki.?css', format: 'css', filename: 'wiki.css' }
|
|
17
17
|
]
|
|
18
18
|
}
|
|
19
19
|
end
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<% @items.each do |i| %>Doing on <%= i[:date_object].strftime('%A %m/%d/%y') %>
|
|
2
|
+
|
|
3
|
+
<%= i[:title] %><% if i[:note].length.positive? %><%= "\n\n" + i[:note].map{|n| n.strip }.join("\n ") %><% end %>
|
|
4
|
+
|
|
5
|
+
<% if i[:human_time] && i[:time] != "00:00:00" %>_Took <%= i[:human_time] %>._<% end %>
|
|
6
|
+
<% end %>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# <%= @page_title %>
|
|
2
|
+
<% @items.each do |i| %>
|
|
3
|
+
- [<%= i[:done] %>] <%= i[:date] %> <%= i[:title] %> <% if i[:time] && i[:time] != "00:00:00" %>[**<%= i[:time] %>**]<% end %><% if i[:note].length.positive? %><%= "\n\n " + i[:note].map{|n| n.strip }.join("\n ") %><% end %><% end %>
|
|
4
|
+
|
|
5
|
+
<%= @totals %>
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: doing
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1.
|
|
4
|
+
version: 2.1.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brett Terpstra
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-12-
|
|
11
|
+
date: 2021-12-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: safe_yaml
|
|
@@ -366,6 +366,26 @@ dependencies:
|
|
|
366
366
|
- - ">="
|
|
367
367
|
- !ruby/object:Gem::Version
|
|
368
368
|
version: 2.0.0
|
|
369
|
+
- !ruby/object:Gem::Dependency
|
|
370
|
+
name: plist
|
|
371
|
+
requirement: !ruby/object:Gem::Requirement
|
|
372
|
+
requirements:
|
|
373
|
+
- - "~>"
|
|
374
|
+
- !ruby/object:Gem::Version
|
|
375
|
+
version: '3.6'
|
|
376
|
+
- - ">="
|
|
377
|
+
- !ruby/object:Gem::Version
|
|
378
|
+
version: 3.6.0
|
|
379
|
+
type: :runtime
|
|
380
|
+
prerelease: false
|
|
381
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
382
|
+
requirements:
|
|
383
|
+
- - "~>"
|
|
384
|
+
- !ruby/object:Gem::Version
|
|
385
|
+
version: '3.6'
|
|
386
|
+
- - ">="
|
|
387
|
+
- !ruby/object:Gem::Version
|
|
388
|
+
version: 3.6.0
|
|
369
389
|
description: A tool for managing a TaskPaper-like file of recent activites. Perfect
|
|
370
390
|
for the late-night hacker on too much caffeine to remember what they accomplished
|
|
371
391
|
at 2 in the morning.
|
|
@@ -392,55 +412,73 @@ files:
|
|
|
392
412
|
- Rakefile
|
|
393
413
|
- _config.yml
|
|
394
414
|
- bin/doing
|
|
395
|
-
-
|
|
396
|
-
- doc/
|
|
397
|
-
- doc/
|
|
398
|
-
- doc/
|
|
399
|
-
- doc/
|
|
400
|
-
- doc/
|
|
401
|
-
- doc/
|
|
402
|
-
- doc/
|
|
403
|
-
- doc/Doing
|
|
404
|
-
- doc/Doing/
|
|
405
|
-
- doc/Doing/
|
|
406
|
-
- doc/Doing/
|
|
407
|
-
- doc/Doing/
|
|
408
|
-
- doc/Doing/
|
|
409
|
-
- doc/Doing/Errors
|
|
410
|
-
- doc/Doing/
|
|
411
|
-
- doc/Doing/
|
|
412
|
-
- doc/Doing/
|
|
413
|
-
- doc/Doing/
|
|
414
|
-
- doc/Doing/
|
|
415
|
-
- doc/Doing/
|
|
416
|
-
- doc/Doing/
|
|
417
|
-
- doc/Doing/
|
|
418
|
-
- doc/Doing/
|
|
419
|
-
- doc/Doing/
|
|
420
|
-
- doc/Doing/
|
|
421
|
-
- doc/Doing/
|
|
422
|
-
- doc/
|
|
423
|
-
- doc/
|
|
424
|
-
- doc/
|
|
425
|
-
- doc/
|
|
426
|
-
- doc/
|
|
427
|
-
- doc/
|
|
428
|
-
- doc/
|
|
429
|
-
- doc/
|
|
430
|
-
- doc/
|
|
431
|
-
- doc/
|
|
432
|
-
- doc/
|
|
433
|
-
- doc/
|
|
434
|
-
- doc/
|
|
435
|
-
- doc/
|
|
436
|
-
- doc/
|
|
437
|
-
- doc/
|
|
438
|
-
- doc/
|
|
439
|
-
- doc/
|
|
440
|
-
- doc/
|
|
441
|
-
- doc/
|
|
442
|
-
- doc/
|
|
443
|
-
- doc/
|
|
415
|
+
- docs/_config.yml
|
|
416
|
+
- docs/doc/Array.html
|
|
417
|
+
- docs/doc/BooleanTermParser.html
|
|
418
|
+
- docs/doc/BooleanTermParser/Clause.html
|
|
419
|
+
- docs/doc/BooleanTermParser/Operator.html
|
|
420
|
+
- docs/doc/BooleanTermParser/Query.html
|
|
421
|
+
- docs/doc/BooleanTermParser/QueryParser.html
|
|
422
|
+
- docs/doc/BooleanTermParser/QueryTransformer.html
|
|
423
|
+
- docs/doc/Doing.html
|
|
424
|
+
- docs/doc/Doing/CLIFormat.html
|
|
425
|
+
- docs/doc/Doing/Color.html
|
|
426
|
+
- docs/doc/Doing/Completion.html
|
|
427
|
+
- docs/doc/Doing/Configuration.html
|
|
428
|
+
- docs/doc/Doing/Content.html
|
|
429
|
+
- docs/doc/Doing/Errors.html
|
|
430
|
+
- docs/doc/Doing/Errors/DoingNoTraceError.html
|
|
431
|
+
- docs/doc/Doing/Errors/DoingRuntimeError.html
|
|
432
|
+
- docs/doc/Doing/Errors/DoingStandardError.html
|
|
433
|
+
- docs/doc/Doing/Errors/EmptyInput.html
|
|
434
|
+
- docs/doc/Doing/Errors/NoResults.html
|
|
435
|
+
- docs/doc/Doing/Errors/PluginException.html
|
|
436
|
+
- docs/doc/Doing/Errors/UserCancelled.html
|
|
437
|
+
- docs/doc/Doing/Errors/WrongCommand.html
|
|
438
|
+
- docs/doc/Doing/Hooks.html
|
|
439
|
+
- docs/doc/Doing/Item.html
|
|
440
|
+
- docs/doc/Doing/Items.html
|
|
441
|
+
- docs/doc/Doing/LogAdapter.html
|
|
442
|
+
- docs/doc/Doing/Note.html
|
|
443
|
+
- docs/doc/Doing/Pager.html
|
|
444
|
+
- docs/doc/Doing/Plugins.html
|
|
445
|
+
- docs/doc/Doing/Prompt.html
|
|
446
|
+
- docs/doc/Doing/Section.html
|
|
447
|
+
- docs/doc/Doing/TemplateString.html
|
|
448
|
+
- docs/doc/Doing/Util.html
|
|
449
|
+
- docs/doc/Doing/Util/Backup.html
|
|
450
|
+
- docs/doc/Doing/WWID.html
|
|
451
|
+
- docs/doc/Doing/WWIDFile.html
|
|
452
|
+
- docs/doc/GLI.html
|
|
453
|
+
- docs/doc/GLI/Commands.html
|
|
454
|
+
- docs/doc/GLI/Commands/MarkdownDocumentListener.html
|
|
455
|
+
- docs/doc/Hash.html
|
|
456
|
+
- docs/doc/PhraseParser.html
|
|
457
|
+
- docs/doc/PhraseParser/Operator.html
|
|
458
|
+
- docs/doc/PhraseParser/PhraseClause.html
|
|
459
|
+
- docs/doc/PhraseParser/Query.html
|
|
460
|
+
- docs/doc/PhraseParser/QueryParser.html
|
|
461
|
+
- docs/doc/PhraseParser/QueryTransformer.html
|
|
462
|
+
- docs/doc/PhraseParser/TermClause.html
|
|
463
|
+
- docs/doc/Status.html
|
|
464
|
+
- docs/doc/String.html
|
|
465
|
+
- docs/doc/Symbol.html
|
|
466
|
+
- docs/doc/Time.html
|
|
467
|
+
- docs/doc/_index.html
|
|
468
|
+
- docs/doc/class_list.html
|
|
469
|
+
- docs/doc/css/common.css
|
|
470
|
+
- docs/doc/css/full_list.css
|
|
471
|
+
- docs/doc/css/style.css
|
|
472
|
+
- docs/doc/file.README.html
|
|
473
|
+
- docs/doc/file_list.html
|
|
474
|
+
- docs/doc/frames.html
|
|
475
|
+
- docs/doc/index.html
|
|
476
|
+
- docs/doc/js/app.js
|
|
477
|
+
- docs/doc/js/full_list.js
|
|
478
|
+
- docs/doc/js/jquery.js
|
|
479
|
+
- docs/doc/method_list.html
|
|
480
|
+
- docs/doc/top-level-namespace.html
|
|
481
|
+
- docs/index.md
|
|
444
482
|
- doing.gemspec
|
|
445
483
|
- doing.rdoc
|
|
446
484
|
- example_plugin.rb
|
|
@@ -474,6 +512,7 @@ files:
|
|
|
474
512
|
- lib/doing/phrase_parser.rb
|
|
475
513
|
- lib/doing/plugin_manager.rb
|
|
476
514
|
- lib/doing/plugins/export/csv_export.rb
|
|
515
|
+
- lib/doing/plugins/export/dayone_export.rb
|
|
477
516
|
- lib/doing/plugins/export/html_export.rb
|
|
478
517
|
- lib/doing/plugins/export/json_export.rb
|
|
479
518
|
- lib/doing/plugins/export/markdown_export.rb
|
|
@@ -488,6 +527,7 @@ files:
|
|
|
488
527
|
- lib/doing/string.rb
|
|
489
528
|
- lib/doing/string_chronify.rb
|
|
490
529
|
- lib/doing/symbol.rb
|
|
530
|
+
- lib/doing/template_string.rb
|
|
491
531
|
- lib/doing/time.rb
|
|
492
532
|
- lib/doing/util.rb
|
|
493
533
|
- lib/doing/util_backup.rb
|
|
@@ -589,6 +629,8 @@ files:
|
|
|
589
629
|
- lib/helpers/fzf/test/fzf.vader
|
|
590
630
|
- lib/helpers/fzf/test/test_go.rb
|
|
591
631
|
- lib/helpers/fzf/uninstall
|
|
632
|
+
- lib/templates/doing-dayone-entry.erb
|
|
633
|
+
- lib/templates/doing-dayone.erb
|
|
592
634
|
- lib/templates/doing-markdown.erb
|
|
593
635
|
- lib/templates/doing.css
|
|
594
636
|
- lib/templates/doing.haml
|
|
@@ -624,9 +666,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
624
666
|
version: '0'
|
|
625
667
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
626
668
|
requirements:
|
|
627
|
-
- - "
|
|
669
|
+
- - ">="
|
|
628
670
|
- !ruby/object:Gem::Version
|
|
629
|
-
version:
|
|
671
|
+
version: '0'
|
|
630
672
|
requirements: []
|
|
631
673
|
rubygems_version: 3.2.16
|
|
632
674
|
signing_key:
|