doing 2.1.83 → 2.1.85

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 +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