doing 2.1.87 → 2.1.89

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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +37 -2
  5. data/README.md +1 -1
  6. data/docs/doc/Array.html +3 -3
  7. data/docs/doc/BooleanTermParser/Clause.html +3 -3
  8. data/docs/doc/BooleanTermParser/Operator.html +3 -3
  9. data/docs/doc/BooleanTermParser/Query.html +3 -3
  10. data/docs/doc/BooleanTermParser/QueryParser.html +3 -3
  11. data/docs/doc/BooleanTermParser/QueryTransformer.html +3 -3
  12. data/docs/doc/BooleanTermParser.html +3 -3
  13. data/docs/doc/Doing/ArrayCleanup.html +3 -3
  14. data/docs/doc/Doing/ArrayNestedHash.html +3 -3
  15. data/docs/doc/Doing/ArrayTags.html +9 -9
  16. data/docs/doc/Doing/ByDayExport.html +3 -3
  17. data/docs/doc/Doing/CSVExport.html +3 -3
  18. data/docs/doc/Doing/CalendarImport.html +3 -3
  19. data/docs/doc/Doing/Change.html +3 -3
  20. data/docs/doc/Doing/Changes.html +3 -3
  21. data/docs/doc/Doing/ChronifyArray.html +3 -3
  22. data/docs/doc/Doing/ChronifyNumeric.html +3 -3
  23. data/docs/doc/Doing/ChronifyString.html +6 -6
  24. data/docs/doc/Doing/Color.html +16 -16
  25. data/docs/doc/Doing/Completion/BashCompletions.html +3 -3
  26. data/docs/doc/Doing/Completion/FigCompletions.html +3 -3
  27. data/docs/doc/Doing/Completion/FishCompletions.html +3 -3
  28. data/docs/doc/Doing/Completion/StringUtils.html +3 -3
  29. data/docs/doc/Doing/Completion/ZshCompletions.html +3 -3
  30. data/docs/doc/Doing/Completion.html +3 -3
  31. data/docs/doc/Doing/Configuration.html +3 -3
  32. data/docs/doc/Doing/DayOneRenderer.html +3 -3
  33. data/docs/doc/Doing/DayoneExport.html +3 -3
  34. data/docs/doc/Doing/DoingExport.html +3 -3
  35. data/docs/doc/Doing/DoingImport.html +3 -3
  36. data/docs/doc/Doing/Entry.html +3 -3
  37. data/docs/doc/Doing/Errors/DoingNoTraceError.html +3 -3
  38. data/docs/doc/Doing/Errors/DoingRuntimeError.html +3 -3
  39. data/docs/doc/Doing/Errors/DoingStandardError.html +3 -3
  40. data/docs/doc/Doing/Errors/EmptyInput.html +3 -3
  41. data/docs/doc/Doing/Errors/HistoryLimitError.html +3 -3
  42. data/docs/doc/Doing/Errors/InvalidPlugin.html +3 -3
  43. data/docs/doc/Doing/Errors/MissingBackupFile.html +3 -3
  44. data/docs/doc/Doing/Errors/NoResults.html +3 -3
  45. data/docs/doc/Doing/Errors/PluginException.html +3 -3
  46. data/docs/doc/Doing/Errors/UserCancelled.html +3 -3
  47. data/docs/doc/Doing/Errors/WrongCommand.html +3 -3
  48. data/docs/doc/Doing/Errors.html +3 -3
  49. data/docs/doc/Doing/HTMLExport.html +3 -3
  50. data/docs/doc/Doing/Hooks.html +3 -3
  51. data/docs/doc/Doing/Item.html +3 -3
  52. data/docs/doc/Doing/ItemDates.html +3 -3
  53. data/docs/doc/Doing/ItemQuery.html +3 -3
  54. data/docs/doc/Doing/ItemState.html +3 -3
  55. data/docs/doc/Doing/ItemTags.html +3 -3
  56. data/docs/doc/Doing/Items.html +3 -3
  57. data/docs/doc/Doing/JSONExport.html +3 -3
  58. data/docs/doc/Doing/JSONImport.html +3 -3
  59. data/docs/doc/Doing/Logger.html +3 -3
  60. data/docs/doc/Doing/MarkdownExport.html +3 -3
  61. data/docs/doc/Doing/Note.html +3 -3
  62. data/docs/doc/Doing/Pager.html +3 -3
  63. data/docs/doc/Doing/Plugins.html +3 -3
  64. data/docs/doc/Doing/Prompt.html +3 -3
  65. data/docs/doc/Doing/PromptChoose.html +3 -3
  66. data/docs/doc/Doing/PromptFZF.html +3 -3
  67. data/docs/doc/Doing/PromptInput.html +3 -3
  68. data/docs/doc/Doing/PromptSTD.html +3 -3
  69. data/docs/doc/Doing/PromptYN.html +3 -3
  70. data/docs/doc/Doing/Section.html +3 -3
  71. data/docs/doc/Doing/StringHighlight.html +3 -3
  72. data/docs/doc/Doing/StringNormalize.html +3 -3
  73. data/docs/doc/Doing/StringQuery.html +4 -4
  74. data/docs/doc/Doing/StringTags.html +3 -3
  75. data/docs/doc/Doing/StringTransform.html +3 -3
  76. data/docs/doc/Doing/StringTruncate.html +3 -3
  77. data/docs/doc/Doing/StringURL.html +3 -3
  78. data/docs/doc/Doing/SymbolNormalize.html +3 -3
  79. data/docs/doc/Doing/TaskPaperExport.html +3 -3
  80. data/docs/doc/Doing/TemplateExport.html +3 -3
  81. data/docs/doc/Doing/TemplateString.html +3 -3
  82. data/docs/doc/Doing/TimingImport.html +3 -3
  83. data/docs/doc/Doing/Types.html +3 -3
  84. data/docs/doc/Doing/Util/Backup.html +3 -3
  85. data/docs/doc/Doing/Util.html +4 -4
  86. data/docs/doc/Doing/Version.html +3 -3
  87. data/docs/doc/Doing/WWID.html +3 -3
  88. data/docs/doc/Doing.html +4 -4
  89. data/docs/doc/FalseClass.html +3 -3
  90. data/docs/doc/GLI/Commands/Help.html +3 -3
  91. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +3 -3
  92. data/docs/doc/GLI/Commands.html +3 -3
  93. data/docs/doc/GLI.html +3 -3
  94. data/docs/doc/Hash.html +4 -4
  95. data/docs/doc/Numeric.html +3 -3
  96. data/docs/doc/Object.html +3 -3
  97. data/docs/doc/PhraseParser/Operator.html +13 -3
  98. data/docs/doc/PhraseParser/PhraseClause.html +4 -4
  99. data/docs/doc/PhraseParser/Query.html +3 -3
  100. data/docs/doc/PhraseParser/QueryParser.html +19 -3
  101. data/docs/doc/PhraseParser/QueryTransformer.html +13 -3
  102. data/docs/doc/PhraseParser/TermClause.html +13 -3
  103. data/docs/doc/PhraseParser.html +3 -3
  104. data/docs/doc/Status.html +3 -3
  105. data/docs/doc/String.html +3 -3
  106. data/docs/doc/Symbol.html +3 -3
  107. data/docs/doc/Time.html +3 -3
  108. data/docs/doc/TrueClass.html +3 -3
  109. data/docs/doc/_index.html +4 -4
  110. data/docs/doc/class_list.html +3 -6
  111. data/docs/doc/css/full_list.css +3 -3
  112. data/docs/doc/css/style.css +0 -6
  113. data/docs/doc/file.README.html +4 -4
  114. data/docs/doc/file_list.html +2 -5
  115. data/docs/doc/frames.html +1 -1
  116. data/docs/doc/index.html +4 -4
  117. data/docs/doc/js/app.js +264 -294
  118. data/docs/doc/js/full_list.js +4 -30
  119. data/docs/doc/method_list.html +2 -5
  120. data/docs/doc/top-level-namespace.html +3 -3
  121. data/doing.gemspec +7 -2
  122. data/doing.rdoc +1 -1
  123. data/lib/doing/phrase_parser.rb +10 -22
  124. data/lib/doing/version.rb +1 -1
  125. metadata +79 -6
@@ -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' role='status' style='display: none'></div>");
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
- var found = $('#full_list li:visible').size();
175
- if (found === 0) {
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
- // This is read out to screen readers
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();
@@ -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
- &mdash; Documentation by YARD 0.9.37
9
+ &mdash; 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 Sat Dec 14 15:35:58 2024 by
219
+ Generated on Mon May 19 04:38:00 2025 by
220
220
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
221
- 0.9.37 (ruby-3.3.0).
221
+ 0.9.36 (ruby-3.4.4).
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.rb'
3
- spec = Gem::Specification.new do |s|
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.87
8
+ v2.1.89
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
@@ -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(:clause => subtree(:clause)) do
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
- # Phrase
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
- query = {}
83
-
84
- if should_clauses.any?
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
@@ -1,3 +1,3 @@
1
1
  module Doing
2
- VERSION = '2.1.87'
2
+ VERSION = '2.1.89'
3
3
  end
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.87
4
+ version: 2.1.89
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-14 00:00:00.000000000 Z
10
+ date: 1980-01-02 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.5.3
871
- signing_key:
944
+ rubygems_version: 3.6.7
872
945
  specification_version: 4
873
946
  summary: A command line tool for managing What Was I Doing reminders
874
947
  test_files: []