doing 2.1.2pre → 2.1.3
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.
- checksums.yaml +4 -4
- data/.yardoc/checksums +5 -5
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/CHANGELOG.md +16 -27
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/Rakefile +2 -0
- data/doc/Array.html +1 -1
- data/doc/Doing/Color.html +1 -1
- data/doc/Doing/Completion.html +1 -1
- data/doc/Doing/Configuration.html +43 -94
- data/doc/Doing/Errors/DoingNoTraceError.html +1 -1
- data/doc/Doing/Errors/DoingRuntimeError.html +1 -1
- data/doc/Doing/Errors/DoingStandardError.html +1 -1
- data/doc/Doing/Errors/EmptyInput.html +1 -1
- data/doc/Doing/Errors/NoResults.html +1 -1
- data/doc/Doing/Errors/PluginException.html +1 -1
- data/doc/Doing/Errors/UserCancelled.html +1 -1
- data/doc/Doing/Errors/WrongCommand.html +1 -1
- data/doc/Doing/Errors.html +1 -1
- data/doc/Doing/Hooks.html +1 -1
- data/doc/Doing/Item.html +2 -17
- data/doc/Doing/Items.html +1 -1
- data/doc/Doing/LogAdapter.html +1 -1
- data/doc/Doing/Note.html +1 -1
- data/doc/Doing/Pager.html +1 -1
- data/doc/Doing/Plugins.html +1 -1
- data/doc/Doing/Prompt.html +36 -18
- data/doc/Doing/Section.html +1 -1
- data/doc/Doing/Util.html +1 -1
- data/doc/Doing/WWID.html +1 -1
- data/doc/Doing.html +2 -2
- data/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
- data/doc/GLI/Commands.html +1 -1
- data/doc/GLI.html +1 -1
- data/doc/Hash.html +1 -1
- data/doc/Status.html +1 -1
- data/doc/String.html +35 -1
- data/doc/Symbol.html +1 -1
- data/doc/Time.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +2 -2
- data/doc/index.html +2 -2
- data/doc/method_list.html +238 -238
- data/doc/top-level-namespace.html +1 -1
- data/doing.rdoc +1 -1
- data/lib/doing/configuration.rb +5 -8
- data/lib/doing/item.rb +1 -1
- data/lib/doing/plugins/export/template_export.rb +4 -1
- data/lib/doing/prompt.rb +9 -9
- data/lib/doing/string.rb +31 -1
- data/lib/doing/version.rb +1 -1
- metadata +4 -4
@@ -102,7 +102,7 @@
|
|
102
102
|
</div>
|
103
103
|
|
104
104
|
<div id="footer">
|
105
|
-
Generated on
|
105
|
+
Generated on Thu Dec 16 11:02:39 2021 by
|
106
106
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
107
107
|
0.9.26 (ruby-3.0.1).
|
108
108
|
</div>
|
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.3
|
9
9
|
|
10
10
|
=== Global Options
|
11
11
|
=== --config_file arg
|
data/lib/doing/configuration.rb
CHANGED
@@ -7,7 +7,7 @@ module Doing
|
|
7
7
|
class Configuration
|
8
8
|
attr_reader :settings
|
9
9
|
|
10
|
-
attr_writer :ignore_local
|
10
|
+
attr_writer :ignore_local, :config_file
|
11
11
|
|
12
12
|
MissingConfigFile = Class.new(RuntimeError)
|
13
13
|
|
@@ -100,24 +100,21 @@ module Doing
|
|
100
100
|
@config_file ||= default_config_file
|
101
101
|
end
|
102
102
|
|
103
|
-
def config_file=(file)
|
104
|
-
@config_file = file
|
105
|
-
end
|
106
|
-
|
107
103
|
def config_dir
|
108
104
|
@config_dir ||= File.join(Util.user_home, '.config', 'doing')
|
109
|
-
# @config_dir ||= Util.user_home
|
110
105
|
end
|
111
106
|
|
112
107
|
def default_config_file
|
113
|
-
|
108
|
+
if File.exist?(config_dir) && !File.directory?(config_dir)
|
109
|
+
raise DoingRuntimeError, "#{config_dir} exists but is not a directory"
|
110
|
+
|
111
|
+
end
|
114
112
|
|
115
113
|
unless File.exist?(config_dir)
|
116
114
|
FileUtils.mkdir_p(config_dir)
|
117
115
|
Doing.logger.log_now(:warn, "Config directory created at #{config_dir}")
|
118
116
|
end
|
119
117
|
|
120
|
-
# File.join(config_dir, 'config.yml')
|
121
118
|
File.join(config_dir, 'config.yml')
|
122
119
|
end
|
123
120
|
|
data/lib/doing/item.rb
CHANGED
@@ -116,7 +116,7 @@ module Doing
|
|
116
116
|
## Add (or remove) tags from the title of the item
|
117
117
|
##
|
118
118
|
## @param tags [Array] The tags to apply
|
119
|
-
## @param
|
119
|
+
## @param options Additional options
|
120
120
|
##
|
121
121
|
## @option options :date [Boolean] Include timestamp?
|
122
122
|
## @option options :single [Boolean] Log as a single change?
|
@@ -36,7 +36,10 @@ module Doing
|
|
36
36
|
|
37
37
|
if opt[:wrap_width]&.positive?
|
38
38
|
width = opt[:wrap_width]
|
39
|
-
note.map!
|
39
|
+
note.map! do |line|
|
40
|
+
line.simple_wrap(width)
|
41
|
+
# line.chomp.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
|
42
|
+
end
|
40
43
|
note = note.join("\n").split(/\n/).delete_if(&:empty?)
|
41
44
|
end
|
42
45
|
else
|
data/lib/doing/prompt.rb
CHANGED
@@ -127,16 +127,16 @@ module Doing
|
|
127
127
|
## Create an interactive menu to select from a set of Items
|
128
128
|
##
|
129
129
|
## @param items [Array] list of items
|
130
|
-
## @param opt
|
131
|
-
## @param include_section [Boolean] include section
|
130
|
+
## @param opt Additional options
|
132
131
|
##
|
133
|
-
## @option opt [
|
134
|
-
## @option opt [String] :
|
135
|
-
## @option opt [String] :
|
136
|
-
## @option opt [
|
137
|
-
## @option opt [Boolean] :menu
|
138
|
-
## @option opt [Boolean] :
|
139
|
-
## @option opt [Boolean] :
|
132
|
+
## @option opt [Boolean] :include_section Include section name for each item in menu
|
133
|
+
## @option opt [String] :header A custom header string
|
134
|
+
## @option opt [String] :prompt A custom prompt string
|
135
|
+
## @option opt [String] :query Initial query
|
136
|
+
## @option opt [Boolean] :show_if_single Show menu even if there's only one option
|
137
|
+
## @option opt [Boolean] :menu Show menu
|
138
|
+
## @option opt [Boolean] :sort Sort options
|
139
|
+
## @option opt [Boolean] :multiple Allow multiple selections
|
140
140
|
## @option opt [Symbol] :case (:sensitive, :ignore, :smart)
|
141
141
|
##
|
142
142
|
def choose_from_items(items, **opt)
|
data/lib/doing/string.rb
CHANGED
@@ -162,6 +162,29 @@ module Doing
|
|
162
162
|
replace uncolor
|
163
163
|
end
|
164
164
|
|
165
|
+
def simple_wrap(width)
|
166
|
+
str = gsub(/@\S+\(.*?\)/) { |tag| tag.gsub(/\s/, '%%%%') }
|
167
|
+
words = str.split(/ /).map { |word| word.gsub(/%%%%/, ' ') }
|
168
|
+
out = []
|
169
|
+
line = []
|
170
|
+
|
171
|
+
words.each do |word|
|
172
|
+
if word.uncolor.length >= width
|
173
|
+
chars = word.uncolor.split('')
|
174
|
+
out << chars.slice!(0, width - 1).join('') while chars.count >= width
|
175
|
+
line << chars.join('')
|
176
|
+
next
|
177
|
+
elsif line.join(' ').uncolor.length + word.uncolor.length + 1 > width
|
178
|
+
out.push(line.join(' '))
|
179
|
+
line.clear
|
180
|
+
end
|
181
|
+
|
182
|
+
line << word.uncolor
|
183
|
+
end
|
184
|
+
out.push(line.join(' '))
|
185
|
+
out.join("\n")
|
186
|
+
end
|
187
|
+
|
165
188
|
##
|
166
189
|
## Wrap string at word breaks, respecting tags
|
167
190
|
##
|
@@ -177,8 +200,14 @@ module Doing
|
|
177
200
|
words = str.split(/ /).map { |word| word.gsub(/%%%%/, ' ') }
|
178
201
|
out = []
|
179
202
|
line = []
|
203
|
+
|
180
204
|
words.each do |word|
|
181
|
-
if
|
205
|
+
if word.uncolor.length >= len
|
206
|
+
chars = word.uncolor.split('')
|
207
|
+
out << chars.slice!(0, len - 1).join('') while chars.count >= len
|
208
|
+
line << chars.join('')
|
209
|
+
next
|
210
|
+
elsif line.join(' ').uncolor.length + word.uncolor.length + 1 > len
|
182
211
|
out.push(line.join(' '))
|
183
212
|
line.clear
|
184
213
|
end
|
@@ -187,6 +216,7 @@ module Doing
|
|
187
216
|
end
|
188
217
|
out.push(line.join(' '))
|
189
218
|
note = ''
|
219
|
+
after = after.dup if after.frozen?
|
190
220
|
after.sub!(note_rx) do
|
191
221
|
note = Regexp.last_match(0)
|
192
222
|
''
|
data/lib/doing/version.rb
CHANGED
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.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brett Terpstra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: safe_yaml
|
@@ -581,9 +581,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
581
581
|
version: '0'
|
582
582
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
583
583
|
requirements:
|
584
|
-
- - "
|
584
|
+
- - ">="
|
585
585
|
- !ruby/object:Gem::Version
|
586
|
-
version:
|
586
|
+
version: '0'
|
587
587
|
requirements: []
|
588
588
|
rubygems_version: 3.2.16
|
589
589
|
signing_key:
|