doing 2.1.87 → 2.1.88

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -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 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.37 (ruby-3.3.0).
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.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.88
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.88'
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.88
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: 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.5.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: []