doing 2.1.4pre → 2.1.7
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|