doing 2.1.87 → 2.1.88
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +37 -2
- data/README.md +1 -1
- data/docs/doc/Array.html +3 -3
- data/docs/doc/BooleanTermParser/Clause.html +3 -3
- data/docs/doc/BooleanTermParser/Operator.html +3 -3
- data/docs/doc/BooleanTermParser/Query.html +3 -3
- data/docs/doc/BooleanTermParser/QueryParser.html +3 -3
- data/docs/doc/BooleanTermParser/QueryTransformer.html +3 -3
- data/docs/doc/BooleanTermParser.html +3 -3
- data/docs/doc/Doing/ArrayCleanup.html +3 -3
- data/docs/doc/Doing/ArrayNestedHash.html +3 -3
- data/docs/doc/Doing/ArrayTags.html +9 -9
- data/docs/doc/Doing/ByDayExport.html +3 -3
- data/docs/doc/Doing/CSVExport.html +3 -3
- data/docs/doc/Doing/CalendarImport.html +3 -3
- data/docs/doc/Doing/Change.html +3 -3
- data/docs/doc/Doing/Changes.html +3 -3
- data/docs/doc/Doing/ChronifyArray.html +3 -3
- data/docs/doc/Doing/ChronifyNumeric.html +3 -3
- data/docs/doc/Doing/ChronifyString.html +6 -6
- data/docs/doc/Doing/Color.html +16 -16
- data/docs/doc/Doing/Completion/BashCompletions.html +3 -3
- data/docs/doc/Doing/Completion/FigCompletions.html +3 -3
- data/docs/doc/Doing/Completion/FishCompletions.html +3 -3
- data/docs/doc/Doing/Completion/StringUtils.html +3 -3
- data/docs/doc/Doing/Completion/ZshCompletions.html +3 -3
- data/docs/doc/Doing/Completion.html +3 -3
- data/docs/doc/Doing/Configuration.html +3 -3
- data/docs/doc/Doing/DayOneRenderer.html +3 -3
- data/docs/doc/Doing/DayoneExport.html +3 -3
- data/docs/doc/Doing/DoingExport.html +3 -3
- data/docs/doc/Doing/DoingImport.html +3 -3
- data/docs/doc/Doing/Entry.html +3 -3
- data/docs/doc/Doing/Errors/DoingNoTraceError.html +3 -3
- data/docs/doc/Doing/Errors/DoingRuntimeError.html +3 -3
- data/docs/doc/Doing/Errors/DoingStandardError.html +3 -3
- data/docs/doc/Doing/Errors/EmptyInput.html +3 -3
- data/docs/doc/Doing/Errors/HistoryLimitError.html +3 -3
- data/docs/doc/Doing/Errors/InvalidPlugin.html +3 -3
- data/docs/doc/Doing/Errors/MissingBackupFile.html +3 -3
- data/docs/doc/Doing/Errors/NoResults.html +3 -3
- data/docs/doc/Doing/Errors/PluginException.html +3 -3
- data/docs/doc/Doing/Errors/UserCancelled.html +3 -3
- data/docs/doc/Doing/Errors/WrongCommand.html +3 -3
- data/docs/doc/Doing/Errors.html +3 -3
- data/docs/doc/Doing/HTMLExport.html +3 -3
- data/docs/doc/Doing/Hooks.html +3 -3
- data/docs/doc/Doing/Item.html +3 -3
- data/docs/doc/Doing/ItemDates.html +3 -3
- data/docs/doc/Doing/ItemQuery.html +3 -3
- data/docs/doc/Doing/ItemState.html +3 -3
- data/docs/doc/Doing/ItemTags.html +3 -3
- data/docs/doc/Doing/Items.html +3 -3
- data/docs/doc/Doing/JSONExport.html +3 -3
- data/docs/doc/Doing/JSONImport.html +3 -3
- data/docs/doc/Doing/Logger.html +3 -3
- data/docs/doc/Doing/MarkdownExport.html +3 -3
- data/docs/doc/Doing/Note.html +3 -3
- data/docs/doc/Doing/Pager.html +3 -3
- data/docs/doc/Doing/Plugins.html +3 -3
- data/docs/doc/Doing/Prompt.html +3 -3
- data/docs/doc/Doing/PromptChoose.html +3 -3
- data/docs/doc/Doing/PromptFZF.html +3 -3
- data/docs/doc/Doing/PromptInput.html +3 -3
- data/docs/doc/Doing/PromptSTD.html +3 -3
- data/docs/doc/Doing/PromptYN.html +3 -3
- data/docs/doc/Doing/Section.html +3 -3
- data/docs/doc/Doing/StringHighlight.html +3 -3
- data/docs/doc/Doing/StringNormalize.html +3 -3
- data/docs/doc/Doing/StringQuery.html +4 -4
- data/docs/doc/Doing/StringTags.html +3 -3
- data/docs/doc/Doing/StringTransform.html +3 -3
- data/docs/doc/Doing/StringTruncate.html +3 -3
- data/docs/doc/Doing/StringURL.html +3 -3
- data/docs/doc/Doing/SymbolNormalize.html +3 -3
- data/docs/doc/Doing/TaskPaperExport.html +3 -3
- data/docs/doc/Doing/TemplateExport.html +3 -3
- data/docs/doc/Doing/TemplateString.html +3 -3
- data/docs/doc/Doing/TimingImport.html +3 -3
- data/docs/doc/Doing/Types.html +3 -3
- data/docs/doc/Doing/Util/Backup.html +3 -3
- data/docs/doc/Doing/Util.html +4 -4
- data/docs/doc/Doing/Version.html +3 -3
- data/docs/doc/Doing/WWID.html +3 -3
- data/docs/doc/Doing.html +4 -4
- data/docs/doc/FalseClass.html +3 -3
- data/docs/doc/GLI/Commands/Help.html +3 -3
- data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +3 -3
- data/docs/doc/GLI/Commands.html +3 -3
- data/docs/doc/GLI.html +3 -3
- data/docs/doc/Hash.html +4 -4
- data/docs/doc/Numeric.html +3 -3
- data/docs/doc/Object.html +3 -3
- data/docs/doc/PhraseParser/Operator.html +13 -3
- data/docs/doc/PhraseParser/PhraseClause.html +4 -4
- data/docs/doc/PhraseParser/Query.html +3 -3
- data/docs/doc/PhraseParser/QueryParser.html +19 -3
- data/docs/doc/PhraseParser/QueryTransformer.html +13 -3
- data/docs/doc/PhraseParser/TermClause.html +13 -3
- data/docs/doc/PhraseParser.html +3 -3
- data/docs/doc/Status.html +3 -3
- data/docs/doc/String.html +3 -3
- data/docs/doc/Symbol.html +3 -3
- data/docs/doc/Time.html +3 -3
- data/docs/doc/TrueClass.html +3 -3
- data/docs/doc/_index.html +4 -4
- data/docs/doc/class_list.html +3 -6
- data/docs/doc/css/full_list.css +3 -3
- data/docs/doc/css/style.css +0 -6
- data/docs/doc/file.README.html +4 -4
- data/docs/doc/file_list.html +2 -5
- data/docs/doc/frames.html +1 -1
- data/docs/doc/index.html +4 -4
- data/docs/doc/js/app.js +264 -294
- data/docs/doc/js/full_list.js +4 -30
- data/docs/doc/method_list.html +2 -5
- data/docs/doc/top-level-namespace.html +3 -3
- data/doing.gemspec +7 -2
- data/doing.rdoc +1 -1
- data/lib/doing/phrase_parser.rb +10 -22
- data/lib/doing/version.rb +1 -1
- metadata +79 -6
data/docs/doc/js/full_list.js
CHANGED
@@ -62,25 +62,8 @@ function enableToggles() {
|
|
62
62
|
evt.stopPropagation();
|
63
63
|
evt.preventDefault();
|
64
64
|
$(this).parent().parent().toggleClass('collapsed');
|
65
|
-
$(this).attr('aria-expanded', function (i, attr) {
|
66
|
-
return attr == 'true' ? 'false' : 'true'
|
67
|
-
});
|
68
65
|
highlight();
|
69
66
|
});
|
70
|
-
|
71
|
-
// navigation of nested classes using keyboard
|
72
|
-
$('#full_list a.toggle').on('keypress',function(evt) {
|
73
|
-
// enter key is pressed
|
74
|
-
if (evt.which == 13) {
|
75
|
-
evt.stopPropagation();
|
76
|
-
evt.preventDefault();
|
77
|
-
$(this).parent().parent().toggleClass('collapsed');
|
78
|
-
$(this).attr('aria-expanded', function (i, attr) {
|
79
|
-
return attr == 'true' ? 'false' : 'true'
|
80
|
-
});
|
81
|
-
highlight();
|
82
|
-
}
|
83
|
-
});
|
84
67
|
}
|
85
68
|
|
86
69
|
function populateSearchCache() {
|
@@ -108,7 +91,7 @@ function enableSearch() {
|
|
108
91
|
}
|
109
92
|
});
|
110
93
|
|
111
|
-
$('#full_list').after("<div id='noresults'
|
94
|
+
$('#full_list').after("<div id='noresults' style='display:none'></div>");
|
112
95
|
}
|
113
96
|
|
114
97
|
function ignoredKeyPress(event) {
|
@@ -171,14 +154,11 @@ function partialSearch(searchString, offset) {
|
|
171
154
|
function searchDone() {
|
172
155
|
searchTimeout = null;
|
173
156
|
highlight();
|
174
|
-
|
175
|
-
|
176
|
-
$('#noresults').text('No results were found.');
|
157
|
+
if ($('#full_list li:visible').size() === 0) {
|
158
|
+
$('#noresults').text('No results were found.').hide().fadeIn();
|
177
159
|
} else {
|
178
|
-
|
179
|
-
$('#noresults').text('There are ' + found + ' results.');
|
160
|
+
$('#noresults').text('').hide();
|
180
161
|
}
|
181
|
-
$('#noresults').show();
|
182
162
|
$('#content').removeClass('insearch');
|
183
163
|
}
|
184
164
|
|
@@ -208,12 +188,6 @@ function expandTo(path) {
|
|
208
188
|
$target.addClass('clicked');
|
209
189
|
$target.removeClass('collapsed');
|
210
190
|
$target.parentsUntil('#full_list', 'li').removeClass('collapsed');
|
211
|
-
|
212
|
-
$target.find('a.toggle').attr('aria-expanded', 'true')
|
213
|
-
$target.parentsUntil('#full_list', 'li').each(function(i, el) {
|
214
|
-
$(el).find('> div > a.toggle').attr('aria-expanded', 'true');
|
215
|
-
});
|
216
|
-
|
217
191
|
if($target[0]) {
|
218
192
|
window.scrollTo(window.scrollX, $target.offset().top - 250);
|
219
193
|
highlight();
|
data/docs/doc/method_list.html
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
|
-
<html
|
2
|
+
<html>
|
3
3
|
<head>
|
4
4
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
5
5
|
<meta charset="utf-8" />
|
@@ -38,10 +38,7 @@
|
|
38
38
|
|
39
39
|
</div>
|
40
40
|
|
41
|
-
<div id="search">
|
42
|
-
<label for="search-class">Search:</label>
|
43
|
-
<input id="search-class" type="text" />
|
44
|
-
</div>
|
41
|
+
<div id="search">Search: <input type="text" /></div>
|
45
42
|
</div>
|
46
43
|
|
47
44
|
<ul id="full_list" class="method">
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.9.
|
9
|
+
— Documentation by YARD 0.9.36
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -216,9 +216,9 @@
|
|
216
216
|
</div>
|
217
217
|
|
218
218
|
<div id="footer">
|
219
|
-
Generated on
|
219
|
+
Generated on Sun Jan 12 12:17:22 2025 by
|
220
220
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
221
|
-
0.9.
|
221
|
+
0.9.36 (ruby-3.4.1).
|
222
222
|
</div>
|
223
223
|
|
224
224
|
</div>
|
data/doing.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Ensure we require the local version and not one we might have installed already
|
2
|
-
require './lib/doing/version
|
3
|
-
|
2
|
+
require './lib/doing/version'
|
3
|
+
Gem::Specification.new do |s|
|
4
4
|
s.name = 'doing'
|
5
5
|
s.version = Doing::VERSION
|
6
6
|
s.author = 'Brett Terpstra'
|
@@ -28,12 +28,17 @@ spec = Gem::Specification.new do |s|
|
|
28
28
|
s.add_development_dependency('test-unit', '~> 3.4.4')
|
29
29
|
s.add_development_dependency('tty-spinner', '~> 0.9', '>= 0.9.3')
|
30
30
|
s.add_development_dependency('yard', '~> 0.9', '>= 0.9.36')
|
31
|
+
s.add_runtime_dependency('base64', '~> 0.2')
|
31
32
|
s.add_runtime_dependency('chronic', '~> 0.10', '>= 0.10.2')
|
33
|
+
s.add_runtime_dependency('csv', '~> 3.3')
|
32
34
|
s.add_runtime_dependency('deep_merge', '~> 1.2', '>= 1.2.1')
|
33
35
|
s.add_runtime_dependency('gli', '~> 2.20', '>= 2.20.1')
|
34
36
|
s.add_runtime_dependency('haml', '~>5.0.0', '>= 5.0.0')
|
37
|
+
s.add_runtime_dependency('logger', '~> 1.4', '>= 1.4.2')
|
38
|
+
s.add_runtime_dependency('ostruct', '~> 0.6')
|
35
39
|
s.add_runtime_dependency('parslet', '~> 2.0', '>= 2.0.0')
|
36
40
|
s.add_runtime_dependency('plist', '~> 3.6', '>= 3.6.0')
|
41
|
+
s.add_runtime_dependency('reline', '~> 0.6')
|
37
42
|
s.add_runtime_dependency('safe_yaml', '~> 1.0')
|
38
43
|
s.add_runtime_dependency('tty-link', '~> 0.1', '>= 0.1.1')
|
39
44
|
s.add_runtime_dependency('tty-markdown', '~> 0.7', '>= 0.7.0')
|
data/doing.rdoc
CHANGED
@@ -5,7 +5,7 @@ record of what you've been doing, complete with tag-based time tracking. The
|
|
5
5
|
command line tool allows you to add entries, annotate with tags and notes, and
|
6
6
|
view your entries with myriad options, with a focus on a "natural" language syntax.
|
7
7
|
|
8
|
-
v2.1.
|
8
|
+
v2.1.88
|
9
9
|
|
10
10
|
=== Global Options
|
11
11
|
=== --config_file arg
|
data/lib/doing/phrase_parser.rb
CHANGED
@@ -7,6 +7,8 @@ module PhraseParser
|
|
7
7
|
# terms. This is done creating multiple types of clauses instead of just one.
|
8
8
|
# A phrase clause generates an Elasticsearch match_phrase query.
|
9
9
|
class QueryParser < Parslet::Parser
|
10
|
+
CLAUSE_TYPES = %i[should must must_not].freeze
|
11
|
+
|
10
12
|
rule(:term) { match('[^\s"]').repeat(1).as(:term) }
|
11
13
|
rule(:quote) { str('"') }
|
12
14
|
rule(:operator) { (str('+') | str('-')).as(:operator) }
|
@@ -19,8 +21,9 @@ module PhraseParser
|
|
19
21
|
root(:query)
|
20
22
|
end
|
21
23
|
|
24
|
+
# Transforms the parsed query into a Query object
|
22
25
|
class QueryTransformer < Parslet::Transform
|
23
|
-
rule(:
|
26
|
+
rule(clause: subtree(:clause)) do
|
24
27
|
if clause[:term]
|
25
28
|
TermClause.new(clause[:operator]&.to_s, clause[:term].to_s)
|
26
29
|
elsif clause[:phrase]
|
@@ -33,6 +36,7 @@ module PhraseParser
|
|
33
36
|
rule(query: sequence(:clauses)) { Query.new(clauses) }
|
34
37
|
end
|
35
38
|
|
39
|
+
# Represents an operator
|
36
40
|
class Operator
|
37
41
|
def self.symbol(str)
|
38
42
|
case str
|
@@ -48,6 +52,7 @@ module PhraseParser
|
|
48
52
|
end
|
49
53
|
end
|
50
54
|
|
55
|
+
# Represents a term clause
|
51
56
|
class TermClause
|
52
57
|
attr_accessor :operator, :term
|
53
58
|
|
@@ -57,7 +62,7 @@ module PhraseParser
|
|
57
62
|
end
|
58
63
|
end
|
59
64
|
|
60
|
-
#
|
65
|
+
# Represents a phrase clause
|
61
66
|
class PhraseClause
|
62
67
|
attr_accessor :operator, :phrase
|
63
68
|
|
@@ -79,27 +84,10 @@ module PhraseParser
|
|
79
84
|
end
|
80
85
|
|
81
86
|
def to_elasticsearch
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
query[:should] = should_clauses.map do |clause|
|
86
|
-
clause_to_query(clause)
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
if must_clauses.any?
|
91
|
-
query[:must] = must_clauses.map do |clause|
|
92
|
-
clause_to_query(clause)
|
93
|
-
end
|
87
|
+
QueryParser::CLAUSE_TYPES.each_with_object({}) do |type, query|
|
88
|
+
clauses = instance_variable_get("@#{type}_clauses")
|
89
|
+
query[type] = clauses.map { |clause| clause_to_query(clause) } if clauses&.any?
|
94
90
|
end
|
95
|
-
|
96
|
-
if must_not_clauses.any?
|
97
|
-
query[:must_not] = must_not_clauses.map do |clause|
|
98
|
-
clause_to_query(clause)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
query
|
103
91
|
end
|
104
92
|
|
105
93
|
def clause_to_query(clause)
|
data/lib/doing/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
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.88
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brett Terpstra
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-01-12 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: github-markup
|
@@ -158,6 +157,20 @@ dependencies:
|
|
158
157
|
- - ">="
|
159
158
|
- !ruby/object:Gem::Version
|
160
159
|
version: 0.9.36
|
160
|
+
- !ruby/object:Gem::Dependency
|
161
|
+
name: base64
|
162
|
+
requirement: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.2'
|
167
|
+
type: :runtime
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.2'
|
161
174
|
- !ruby/object:Gem::Dependency
|
162
175
|
name: chronic
|
163
176
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,6 +191,20 @@ dependencies:
|
|
178
191
|
- - ">="
|
179
192
|
- !ruby/object:Gem::Version
|
180
193
|
version: 0.10.2
|
194
|
+
- !ruby/object:Gem::Dependency
|
195
|
+
name: csv
|
196
|
+
requirement: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '3.3'
|
201
|
+
type: :runtime
|
202
|
+
prerelease: false
|
203
|
+
version_requirements: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - "~>"
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '3.3'
|
181
208
|
- !ruby/object:Gem::Dependency
|
182
209
|
name: deep_merge
|
183
210
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,6 +265,40 @@ dependencies:
|
|
238
265
|
- - ">="
|
239
266
|
- !ruby/object:Gem::Version
|
240
267
|
version: 5.0.0
|
268
|
+
- !ruby/object:Gem::Dependency
|
269
|
+
name: logger
|
270
|
+
requirement: !ruby/object:Gem::Requirement
|
271
|
+
requirements:
|
272
|
+
- - "~>"
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
version: '1.4'
|
275
|
+
- - ">="
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: 1.4.2
|
278
|
+
type: :runtime
|
279
|
+
prerelease: false
|
280
|
+
version_requirements: !ruby/object:Gem::Requirement
|
281
|
+
requirements:
|
282
|
+
- - "~>"
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: '1.4'
|
285
|
+
- - ">="
|
286
|
+
- !ruby/object:Gem::Version
|
287
|
+
version: 1.4.2
|
288
|
+
- !ruby/object:Gem::Dependency
|
289
|
+
name: ostruct
|
290
|
+
requirement: !ruby/object:Gem::Requirement
|
291
|
+
requirements:
|
292
|
+
- - "~>"
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
version: '0.6'
|
295
|
+
type: :runtime
|
296
|
+
prerelease: false
|
297
|
+
version_requirements: !ruby/object:Gem::Requirement
|
298
|
+
requirements:
|
299
|
+
- - "~>"
|
300
|
+
- !ruby/object:Gem::Version
|
301
|
+
version: '0.6'
|
241
302
|
- !ruby/object:Gem::Dependency
|
242
303
|
name: parslet
|
243
304
|
requirement: !ruby/object:Gem::Requirement
|
@@ -278,6 +339,20 @@ dependencies:
|
|
278
339
|
- - ">="
|
279
340
|
- !ruby/object:Gem::Version
|
280
341
|
version: 3.6.0
|
342
|
+
- !ruby/object:Gem::Dependency
|
343
|
+
name: reline
|
344
|
+
requirement: !ruby/object:Gem::Requirement
|
345
|
+
requirements:
|
346
|
+
- - "~>"
|
347
|
+
- !ruby/object:Gem::Version
|
348
|
+
version: '0.6'
|
349
|
+
type: :runtime
|
350
|
+
prerelease: false
|
351
|
+
version_requirements: !ruby/object:Gem::Requirement
|
352
|
+
requirements:
|
353
|
+
- - "~>"
|
354
|
+
- !ruby/object:Gem::Version
|
355
|
+
version: '0.6'
|
281
356
|
- !ruby/object:Gem::Dependency
|
282
357
|
name: safe_yaml
|
283
358
|
requirement: !ruby/object:Gem::Requirement
|
@@ -845,7 +920,6 @@ homepage: http://brettterpstra.com/project/doing/
|
|
845
920
|
licenses:
|
846
921
|
- MIT
|
847
922
|
metadata: {}
|
848
|
-
post_install_message:
|
849
923
|
rdoc_options:
|
850
924
|
- "--title"
|
851
925
|
- doing
|
@@ -867,8 +941,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
867
941
|
- !ruby/object:Gem::Version
|
868
942
|
version: '0'
|
869
943
|
requirements: []
|
870
|
-
rubygems_version: 3.
|
871
|
-
signing_key:
|
944
|
+
rubygems_version: 3.6.2
|
872
945
|
specification_version: 4
|
873
946
|
summary: A command line tool for managing What Was I Doing reminders
|
874
947
|
test_files: []
|