doing 2.1.83 → 2.1.85

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 +20 -0
  3. data/Gemfile.lock +14 -14
  4. data/README.md +1 -1
  5. data/SECURITY.md +13 -0
  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 +3 -3
  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 +3 -3
  24. data/docs/doc/Doing/Color.html +3 -3
  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 +14 -5
  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 +3 -3
  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 +3 -3
  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 +3 -3
  95. data/docs/doc/Numeric.html +3 -3
  96. data/docs/doc/Object.html +3 -3
  97. data/docs/doc/PhraseParser/Operator.html +3 -3
  98. data/docs/doc/PhraseParser/PhraseClause.html +3 -3
  99. data/docs/doc/PhraseParser/Query.html +3 -3
  100. data/docs/doc/PhraseParser/QueryParser.html +3 -3
  101. data/docs/doc/PhraseParser/QueryTransformer.html +3 -3
  102. data/docs/doc/PhraseParser/TermClause.html +3 -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/file.README.html +4 -4
  111. data/docs/doc/frames.html +10 -5
  112. data/docs/doc/index.html +4 -4
  113. data/docs/doc/top-level-namespace.html +3 -3
  114. data/doing.gemspec +1 -1
  115. data/doing.rdoc +1 -1
  116. data/lib/doing/configuration.rb +15 -2
  117. data/lib/doing/template_string.rb +2 -1
  118. data/lib/doing/time.rb +4 -4
  119. data/lib/doing/version.rb +1 -1
  120. data/lib/doing/wwid/guess.rb +3 -3
  121. data/lib/doing.rb +2 -2
  122. data/lib/examples/commands/todo.rb +29 -0
  123. data/lib/helpers/fzf/go.mod +3 -4
  124. data/lib/helpers/fzf/go.sum +26 -7
  125. metadata +6 -4
@@ -116,7 +116,8 @@ module Doing
116
116
  pad = m['width'].to_i
117
117
  mark = m['mchar'] || ''
118
118
  if placeholder == 'shortdate' && m['width'].nil?
119
- pad = 13
119
+ fmt_string = Doing.setting('shortdate_format.older', '%m/%d/%y %_I:%M%P', exact: true)
120
+ pad = Date.today.strftime(fmt_string).length
120
121
  end
121
122
  indent = nil
122
123
  if m['ichar']
data/lib/doing/time.rb CHANGED
@@ -12,13 +12,13 @@ module Doing
12
12
  #
13
13
  def relative_date
14
14
  if self > Date.today.to_time
15
- strftime('%_I:%M%P')
15
+ strftime(Doing.setting('shortdate_format.today', '%_I:%M%P', exact: true))
16
16
  elsif self > (Date.today - 6).to_time
17
- strftime('%a %_I:%M%P')
17
+ strftime(Doing.setting('shortdate_format.this_week', '%a %_I:%M%P', exact: true))
18
18
  elsif year == Date.today.year || (year + 1 == Date.today.year && month > Date.today.month)
19
- strftime('%m/%d %_I:%M%P')
19
+ strftime(Doing.setting('shortdate_format.this_month', '%m/%d %_I:%M%P', exact: true))
20
20
  else
21
- strftime('%m/%d/%y %_I:%M%P')
21
+ strftime(Doing.setting('shortdate_format.older', '%m/%d/%y %_I:%M%P', exact: true))
22
22
  end
23
23
  end
24
24
 
data/lib/doing/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Doing
2
- VERSION = '2.1.83'
2
+ VERSION = '2.1.85'
3
3
  end
@@ -27,8 +27,8 @@ module Doing
27
27
 
28
28
  section = found ? found.title : nil
29
29
 
30
- if suggest
31
- Doing.logger.debug('Match:', %(Assuming "#{sect.title}" from "#{frag}"))
30
+ if section && suggest
31
+ Doing.logger.debug('Match:', %(Assuming "#{section}" from "#{frag}"))
32
32
  return section
33
33
  end
34
34
 
@@ -53,7 +53,7 @@ module Doing
53
53
 
54
54
  raise Errors::InvalidSection.new("unknown section #{frag.bold.white}", topic: 'Missing:')
55
55
  end
56
- section ? section.cap_first : guessed
56
+ section ? section.cap_first : nil
57
57
  end
58
58
 
59
59
  ##
data/lib/doing.rb CHANGED
@@ -106,14 +106,14 @@ module Doing
106
106
  ## @param default A default value to return if the
107
107
  ## provided path returns nil result
108
108
  ##
109
- def setting(keypath, default = nil)
109
+ def setting(keypath, default = nil, exact: false)
110
110
  cfg = config.settings
111
111
  case keypath
112
112
  when Array
113
113
  cfg.dig(*keypath) || default
114
114
  when String
115
115
  unless keypath =~ /^[.*]?$/
116
- real_path = config.resolve_key_path(keypath, create: false)
116
+ real_path = config.resolve_key_path(keypath, create: false, distance: 0, exact: exact)
117
117
  return default unless real_path&.count&.positive?
118
118
 
119
119
  cfg = cfg.dig(*real_path)
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @@todo
4
+ desc 'Add an item as a Todo'
5
+ long_desc 'Adds an item to a Todo section, and tags it with @todo'
6
+ arg_name 'ENTRY'
7
+ command :todo do |c|
8
+ c.example 'doing todo "Something I\'ll think about tomorrow"', desc: 'Add an entry to the Todo section with tag @todo'
9
+ c.example 'doing later -e', desc: 'Open $EDITOR to create an entry and optional note'
10
+
11
+ c.desc "Edit entry with #{Doing::Util.default_editor}"
12
+ c.switch %i[e editor], negatable: false, default_value: false
13
+
14
+ c.desc 'Note'
15
+ c.arg_name 'TEXT'
16
+ c.flag %i[n note]
17
+
18
+ c.desc 'Prompt for note via multi-line input'
19
+ c.switch %i[ask], negatable: false, default_value: false
20
+
21
+ c.action do |global_options, options, args|
22
+ cmd = commands[:now]
23
+ options[:section] = 'Todo'
24
+ options[:finish_last] = false
25
+ action = cmd.send(:get_action, nil)
26
+ string = args.join(' ').add_tags('todo')
27
+ action.call(global_options, options, [string])
28
+ end
29
+ end
@@ -8,10 +8,9 @@ require (
8
8
  github.com/mattn/go-shellwords v1.0.12
9
9
  github.com/rivo/uniseg v0.2.0
10
10
  github.com/saracen/walker v0.1.2
11
- golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
12
- golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c
13
- golang.org/x/term v0.0.0-20210317153231-de623e64d2a6
14
- golang.org/x/text v0.3.6 // indirect
11
+ golang.org/x/sys v0.1.0
12
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
13
+ golang.org/x/text v0.3.8 // indirect
15
14
  )
16
15
 
17
16
  go 1.13
@@ -16,16 +16,35 @@ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
16
16
  github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
17
17
  github.com/saracen/walker v0.1.2 h1:/o1TxP82n8thLvmL4GpJXduYaRmJ7qXp8u9dSlV0zmo=
18
18
  github.com/saracen/walker v0.1.2/go.mod h1:0oKYMsKVhSJ+ful4p/XbjvXbMgLEkLITZaxozsl4CGE=
19
+ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
20
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
21
+ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
22
+ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
23
+ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
24
+ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
25
+ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
26
+ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
19
27
  golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
20
- golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
21
- golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
28
+ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
29
+ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
30
+ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
22
31
  golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
23
32
  golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
24
- golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I=
33
+ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
25
34
  golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
26
- golang.org/x/term v0.0.0-20210317153231-de623e64d2a6 h1:EC6+IGYTjPpRfv9a2b/6Puw0W+hLtAhkV1tPsXhutqs=
27
- golang.org/x/term v0.0.0-20210317153231-de623e64d2a6/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
35
+ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
36
+ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
37
+ golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
38
+ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
39
+ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
40
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
41
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
28
42
  golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
29
- golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
30
- golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
43
+ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
44
+ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
45
+ golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
46
+ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
31
47
  golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
48
+ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
49
+ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
50
+ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
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.83
4
+ version: 2.1.85
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-01 00:00:00.000000000 Z
11
+ date: 2024-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: github-markup
@@ -147,7 +147,7 @@ dependencies:
147
147
  version: '0.9'
148
148
  - - ">="
149
149
  - !ruby/object:Gem::Version
150
- version: 0.9.26
150
+ version: 0.9.36
151
151
  type: :development
152
152
  prerelease: false
153
153
  version_requirements: !ruby/object:Gem::Requirement
@@ -157,7 +157,7 @@ dependencies:
157
157
  version: '0.9'
158
158
  - - ">="
159
159
  - !ruby/object:Gem::Version
160
- version: 0.9.26
160
+ version: 0.9.36
161
161
  - !ruby/object:Gem::Dependency
162
162
  name: chronic
163
163
  requirement: !ruby/object:Gem::Requirement
@@ -433,6 +433,7 @@ files:
433
433
  - LICENSE.txt
434
434
  - README.md
435
435
  - Rakefile
436
+ - SECURITY.md
436
437
  - _config.yml
437
438
  - bin/commands/again.rb
438
439
  - bin/commands/archive.rb
@@ -724,6 +725,7 @@ files:
724
725
  - lib/doing/wwid/wwidutil.rb
725
726
  - lib/examples/commands/autotag.rb
726
727
  - lib/examples/commands/later.rb
728
+ - lib/examples/commands/todo.rb
727
729
  - lib/examples/commands/wiki.rb
728
730
  - lib/examples/plugins/capture_thing_import.rb
729
731
  - lib/examples/plugins/hooks.rb