rbnotes 0.4.11 → 0.4.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/Gemfile.lock +1 -1
- data/conf/config.yml +1 -0
- data/conf/config_deve.yml +1 -0
- data/conf/config_deve_fzf_no_opts.yml +8 -0
- data/conf/config_deve_no_picker.yml +7 -0
- data/conf/config_deve_peco.yml +8 -0
- data/exe/rbnotes +9 -1
- data/lib/rbnotes/commands/add.rb +26 -1
- data/lib/rbnotes/commands/list.rb +57 -11
- data/lib/rbnotes/commands/pick.rb +5 -1
- data/lib/rbnotes/conf.rb +20 -17
- data/lib/rbnotes/error.rb +37 -7
- data/lib/rbnotes/utils.rb +52 -9
- data/lib/rbnotes/version.rb +2 -2
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 517b5866c81f76286f87b2ed7d2e695c4dd09d5c7ab86f9557079232a58fde37
|
4
|
+
data.tar.gz: 1d89412445d155501f67cd0978a8070975ed722ee7440119cf5a9ba89ca946eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f0bab361e6f4a7f22a59433369b221b6dffc1e16b79f9d4bdc4027d78c3d61a6e949ab2b81ae1ab3be4c5d52af6bd74aed4b36c70a93f31e710a42b7bb23731
|
7
|
+
data.tar.gz: af38ba13276090ae653fee8b1b3f67f3de57596851ce8b645f4ed3463c38d71c4a950b3382bff55ad98853c42e2cb3f2df0e7e7652f756f385d53ef15f917085
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/).
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
|
+
Nothing to record here.
|
9
|
+
|
10
|
+
## [0.4.12] - 2020-12-18
|
11
|
+
### Changed
|
12
|
+
- Make clear the spec of `list` command args. (#94)
|
13
|
+
- Add a feature to use a template file for `add` command. (#87)
|
14
|
+
- Add new keywords for `list` command. (#90)
|
15
|
+
- `this_month` and `last_month`
|
16
|
+
- Add a new option, `verbose` for `list` command. (#76)
|
17
|
+
|
18
|
+
### Fixed
|
19
|
+
- Fix issue #80: suppress unnecessary error message.
|
20
|
+
|
8
21
|
## [0.4.11] - 2020-12-07
|
9
22
|
### Added
|
10
23
|
- Add a new command `statistics`. (#73)
|
data/Gemfile.lock
CHANGED
data/conf/config.yml
CHANGED
data/conf/config_deve.yml
CHANGED
data/exe/rbnotes
CHANGED
@@ -48,16 +48,24 @@ app = App.new
|
|
48
48
|
begin
|
49
49
|
app.parse_global_options(ARGV)
|
50
50
|
app.run(ARGV)
|
51
|
-
rescue Errno::EPIPE =>
|
51
|
+
rescue Errno::EPIPE => _
|
52
52
|
# Fix issue #61: When the pipeline which rbnotes connects is
|
53
53
|
# discarded by the other program, the execption was raised. It does
|
54
54
|
# not end abnormally for rbnotes. So, just ignores the exception.
|
55
55
|
exit 0
|
56
|
+
rescue NoArgumentError => _
|
57
|
+
# Fix issue #80: Typically, this error raises when a command tries
|
58
|
+
# to read the standard input for its arguments and gets nil. It
|
59
|
+
# means user wants to cancel to execute. So, just ignore the error
|
60
|
+
# and exit.
|
61
|
+
exit 0
|
56
62
|
rescue MissingArgumentError, MissingTimestampError,
|
57
63
|
NoEditorError, ProgramAbortError,
|
58
64
|
Textrepo::InvalidTimestampStringError,
|
59
65
|
InvalidTimestampPatternError,
|
66
|
+
InvalidTimestampPatternAsDateError,
|
60
67
|
NoConfFileError,
|
68
|
+
NoTemplateFileError,
|
61
69
|
ArgumentError,
|
62
70
|
Errno::EACCES => e
|
63
71
|
puts e.message
|
data/lib/rbnotes/commands/add.rb
CHANGED
@@ -42,6 +42,9 @@ module Rbnotes::Commands
|
|
42
42
|
raise ArgumentError, "missing timestamp: %s" % args.unshift(arg) if stamp_str.nil?
|
43
43
|
stamp_str = complement_timestamp_pattern(stamp_str)
|
44
44
|
@opts[:timestamp] = Textrepo::Timestamp.parse_s(stamp_str)
|
45
|
+
when "-f", "--template-file"
|
46
|
+
template_path = args.shift
|
47
|
+
@opts[:template] = template_path
|
45
48
|
else
|
46
49
|
args.unshift(arg)
|
47
50
|
break
|
@@ -54,7 +57,8 @@ module Rbnotes::Commands
|
|
54
57
|
editor = Rbnotes.utils.find_program(candidates)
|
55
58
|
raise Rbnotes::NoEditorError, candidates if editor.nil?
|
56
59
|
|
57
|
-
|
60
|
+
template = read_template(conf)
|
61
|
+
tmpfile = Rbnotes.utils.run_with_tmpfile(editor, stamp.to_s, template)
|
58
62
|
|
59
63
|
unless FileTest.exist?(tmpfile)
|
60
64
|
puts "Cancel adding, since nothing to store"
|
@@ -127,5 +131,26 @@ HELP
|
|
127
131
|
end
|
128
132
|
stamp_str
|
129
133
|
end
|
134
|
+
|
135
|
+
def read_template(conf)
|
136
|
+
template = nil
|
137
|
+
template_path = @opts[:template] || conf[:template]
|
138
|
+
|
139
|
+
if template_path
|
140
|
+
raise Rbnotes::NoTemplateFileError, template_path unless FileTest.exist?(template_path)
|
141
|
+
template = File.readlines(template_path, chomp: true)
|
142
|
+
else
|
143
|
+
template_path = default_template_file(conf)
|
144
|
+
template = File.readlines(template_path, chomp: true) if FileTest.exist?(template_path)
|
145
|
+
end
|
146
|
+
|
147
|
+
template
|
148
|
+
end
|
149
|
+
|
150
|
+
def default_template_file(conf)
|
151
|
+
dir = File.join(conf[:config_home], "templates")
|
152
|
+
File.expand_path("default.md", dir)
|
153
|
+
end
|
154
|
+
|
130
155
|
end
|
131
156
|
end
|
@@ -24,10 +24,12 @@ module Rbnotes::Commands
|
|
24
24
|
#
|
25
25
|
# A keyword must be one of them:
|
26
26
|
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
27
|
+
# - "today" (or "to")
|
28
|
+
# - "yeasterday" (or "ye")
|
29
|
+
# - "this_week" (or "tw")
|
30
|
+
# - "last_week" (or "lw")
|
31
|
+
# - "this_month" (or "tm")
|
32
|
+
# - "last_month" (or "lm")
|
31
33
|
#
|
32
34
|
# Here is several examples of timestamp patterns.
|
33
35
|
#
|
@@ -57,6 +59,8 @@ module Rbnotes::Commands
|
|
57
59
|
case arg
|
58
60
|
when "-w", "--week"
|
59
61
|
@opts[:enum_week] = true
|
62
|
+
when "-v", "--verbose"
|
63
|
+
@opts[:verbose] = true
|
60
64
|
else
|
61
65
|
args.unshift(arg)
|
62
66
|
break
|
@@ -70,20 +74,41 @@ module Rbnotes::Commands
|
|
70
74
|
when "yyyymodd".size, "yyyymoddhhmiss".size, "yyyymoddhhmiss_sfx".size
|
71
75
|
stamp_str = "#{arg}000000"[0, 14]
|
72
76
|
timestamp = Textrepo::Timestamp.parse_s(stamp_str)
|
73
|
-
|
77
|
+
when "modd".size
|
78
|
+
this_year = Time.now.year.to_s
|
79
|
+
stamp_str = "#{this_year}#{arg}000000"
|
80
|
+
begin
|
81
|
+
timestamp = Textrepo::Timestamp.parse_s(stamp_str)
|
82
|
+
rescue Textrepo::InvalidTimestampStringError => _e
|
83
|
+
raise InvalidTimestampPatternAsDateError, arg
|
84
|
+
end
|
74
85
|
else
|
75
|
-
raise
|
76
|
-
"cannot convert to a date [%s]" % args.unshift(arg)
|
86
|
+
raise InvalidTimestampPatternAsDateError, args.unshift(arg)
|
77
87
|
end
|
88
|
+
patterns = Rbnotes.utils.timestamp_patterns_in_week(timestamp)
|
78
89
|
else
|
79
90
|
patterns = Rbnotes.utils.expand_keyword_in_args(args)
|
80
91
|
end
|
81
92
|
|
82
93
|
@repo = Textrepo.init(conf)
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
94
|
+
notes = Rbnotes.utils.find_notes(patterns, @repo)
|
95
|
+
output = []
|
96
|
+
if @opts[:verbose]
|
97
|
+
collect_timestamps_by_date(notes).each { |date, timestamps|
|
98
|
+
output << "#{date} (#{timestamps.size})"
|
99
|
+
timestamps.each { |timestamp|
|
100
|
+
pad = " "
|
101
|
+
output << Rbnotes.utils.make_headline(timestamp,
|
102
|
+
@repo.read(timestamp), pad)
|
103
|
+
}
|
104
|
+
}
|
105
|
+
else
|
106
|
+
notes.each { |timestamp|
|
107
|
+
output << Rbnotes.utils.make_headline(timestamp,
|
108
|
+
@repo.read(timestamp))
|
109
|
+
}
|
110
|
+
end
|
111
|
+
puts output
|
87
112
|
end
|
88
113
|
|
89
114
|
def help # :nodoc:
|
@@ -110,6 +135,8 @@ KEYWORD:
|
|
110
135
|
- "yeasterday" (or "ye")
|
111
136
|
- "this_week" (or "tw")
|
112
137
|
- "last_week" (or "lw")
|
138
|
+
- "this_month" (or "tm")
|
139
|
+
- "last_month" (or "lm")
|
113
140
|
|
114
141
|
An option "--week" is also acceptable. It specifies to enumerate all
|
115
142
|
days of a week. Typically, the option is used with a STAMP_PATTERN
|
@@ -124,5 +151,24 @@ would be as same as the KEYWORD, "this_week" was specified.
|
|
124
151
|
HELP
|
125
152
|
end
|
126
153
|
|
154
|
+
# :stopdoc:
|
155
|
+
|
156
|
+
private
|
157
|
+
|
158
|
+
def collect_timestamps_by_date(timestamps)
|
159
|
+
result = {}
|
160
|
+
timestamps.map { |ts|
|
161
|
+
[ts.strftime("%Y-%m-%d"), ts]
|
162
|
+
}.reduce(result) { |r, pair|
|
163
|
+
date, stamp = pair
|
164
|
+
r[date] ||= []
|
165
|
+
r[date] << stamp
|
166
|
+
r
|
167
|
+
}
|
168
|
+
result
|
169
|
+
end
|
170
|
+
|
171
|
+
# :startdoc:
|
172
|
+
|
127
173
|
end
|
128
174
|
end
|
@@ -20,8 +20,12 @@ module Rbnotes::Commands
|
|
20
20
|
|
21
21
|
picker = conf[:picker]
|
22
22
|
unless picker.nil?
|
23
|
+
picker_opts = conf[:picker_option]
|
24
|
+
cmds = [picker]
|
25
|
+
cmds.concat(picker_opts.split) unless picker_opts.nil?
|
26
|
+
|
23
27
|
require 'open3'
|
24
|
-
result = Open3.pipeline_rw(
|
28
|
+
result = Open3.pipeline_rw(cmds) { |stdin, stdout, _|
|
25
29
|
stdin.puts list
|
26
30
|
stdin.close
|
27
31
|
stdout.read
|
data/lib/rbnotes/conf.rb
CHANGED
@@ -31,19 +31,26 @@ module Rbnotes
|
|
31
31
|
|
32
32
|
DIRNAME_COMMON_CONF = ".config"
|
33
33
|
|
34
|
-
def initialize(
|
35
|
-
@conf_path = conf_path
|
34
|
+
def initialize(path = nil) # :nodoc:
|
36
35
|
@conf = {}
|
37
36
|
|
38
|
-
|
39
|
-
|
37
|
+
unless path.nil?
|
38
|
+
abspath = File.expand_path(path)
|
39
|
+
raise NoConfFileError, path unless FileTest.exist?(abspath)
|
40
|
+
@conf[:path] = abspath
|
40
41
|
else
|
41
|
-
@
|
42
|
-
raise NoConfFileError, @conf_path unless File.exist?(@conf_path)
|
43
|
-
|
44
|
-
yaml_str = File.open(@conf_path, "r") { |f| f.read }
|
45
|
-
@conf = YAML.load(yaml_str)
|
42
|
+
@conf[:path] = default_conf_path
|
46
43
|
end
|
44
|
+
|
45
|
+
values =
|
46
|
+
if FileTest.exist?(@conf[:path])
|
47
|
+
yaml_str = File.open(@conf[:path], "r") { |f| f.read }
|
48
|
+
YAML.load(yaml_str)
|
49
|
+
else
|
50
|
+
DEFAULT_VALUES
|
51
|
+
end
|
52
|
+
@conf.merge!(values)
|
53
|
+
@conf[:config_home] = config_home
|
47
54
|
end
|
48
55
|
|
49
56
|
def_delegators(:@conf,
|
@@ -91,7 +98,7 @@ module Rbnotes
|
|
91
98
|
:test => "_test",
|
92
99
|
}
|
93
100
|
|
94
|
-
def
|
101
|
+
def config_home
|
95
102
|
path = nil
|
96
103
|
xdg, user = ["XDG_CONFIG_HOME", "HOME"].map{|n| ENV[n]}
|
97
104
|
if xdg
|
@@ -99,15 +106,11 @@ module Rbnotes
|
|
99
106
|
else
|
100
107
|
path = File.join(user, DIRNAME_COMMON_CONF, DIRNAME_RBNOTES)
|
101
108
|
end
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
def default_conf_file
|
106
|
-
File.join(base_path, FILENAME_CONF)
|
109
|
+
path
|
107
110
|
end
|
108
111
|
|
109
|
-
def
|
110
|
-
|
112
|
+
def default_conf_path
|
113
|
+
File.join(config_home, FILENAME_CONF)
|
111
114
|
end
|
112
115
|
|
113
116
|
# :startdoc:
|
data/lib/rbnotes/error.rb
CHANGED
@@ -7,13 +7,15 @@ module Rbnotes
|
|
7
7
|
# :stopdoc:
|
8
8
|
|
9
9
|
module ErrMsg
|
10
|
-
MISSING_ARGUMENT = "
|
11
|
-
MISSING_TIMESTAMP = "
|
12
|
-
NO_EDITOR = "
|
13
|
-
PROGRAM_ABORT = "
|
14
|
-
UNKNOWN_KEYWORD = "
|
15
|
-
INVALID_TIMESTAMP_PATTERN = "
|
16
|
-
NO_CONF_FILE = "
|
10
|
+
MISSING_ARGUMENT = "missing argument: %s"
|
11
|
+
MISSING_TIMESTAMP = "missing timestamp: %s"
|
12
|
+
NO_EDITOR = "no editor is available: %s"
|
13
|
+
PROGRAM_ABORT = "external program was aborted: %s"
|
14
|
+
UNKNOWN_KEYWORD = "unknown keyword: %s"
|
15
|
+
INVALID_TIMESTAMP_PATTERN = "invalid timestamp pattern: %s"
|
16
|
+
NO_CONF_FILE = "no configuration file: %s"
|
17
|
+
NO_TEMPLATE_FILE = "no template file: %s"
|
18
|
+
INVALID_TIMESTAMP_PATTERN_AS_DATE = "invalid timestamp pattern as date: %s"
|
17
19
|
end
|
18
20
|
|
19
21
|
# :startdoc:
|
@@ -86,4 +88,32 @@ module Rbnotes
|
|
86
88
|
end
|
87
89
|
end
|
88
90
|
|
91
|
+
##
|
92
|
+
# An error raised when no arguments is spcified.
|
93
|
+
|
94
|
+
class NoArgumentError < Error
|
95
|
+
def initialize
|
96
|
+
super
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
##
|
101
|
+
# An error raised when the specified template files does not exist.
|
102
|
+
#
|
103
|
+
class NoTemplateFileError < Error
|
104
|
+
def initialize(filepath)
|
105
|
+
super(ErrMsg::NO_TEMPLATE_FILE % filepath)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
##
|
110
|
+
# An error raised when the specified pattern cannot be converted
|
111
|
+
# into a date.
|
112
|
+
#
|
113
|
+
class InvalidTimestampPatternAsDateError < Error
|
114
|
+
def initialize(pattern)
|
115
|
+
super(ErrMsg::INVALID_TIMESTAMP_PATTERN_AS_DATE % pattern)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
89
119
|
end
|
data/lib/rbnotes/utils.rb
CHANGED
@@ -99,6 +99,7 @@ module Rbnotes
|
|
99
99
|
|
100
100
|
def read_timestamp(args)
|
101
101
|
str = args.shift || read_arg($stdin)
|
102
|
+
raise NoArgumentError if str.nil?
|
102
103
|
Textrepo::Timestamp.parse_s(str)
|
103
104
|
end
|
104
105
|
|
@@ -112,6 +113,7 @@ module Rbnotes
|
|
112
113
|
|
113
114
|
def read_multiple_timestamps(args)
|
114
115
|
strings = args.size < 1 ? read_multiple_args($stdin) : args
|
116
|
+
raise NoArgumentError if (strings.nil? || strings.empty?)
|
115
117
|
strings.map { |str| Textrepo::Timestamp.parse_s(str) }
|
116
118
|
end
|
117
119
|
|
@@ -136,6 +138,8 @@ module Rbnotes
|
|
136
138
|
# - "yeasterday" (or "ye")
|
137
139
|
# - "this_week" (or "tw")
|
138
140
|
# - "last_week" (or "lw")
|
141
|
+
# - "this_month" (or "tm")
|
142
|
+
# - "last_month" (or "lm")
|
139
143
|
#
|
140
144
|
# :call-seq:
|
141
145
|
# expand_keyword_in_args(Array of Strings) -> Array of Strings
|
@@ -147,7 +151,8 @@ module Rbnotes
|
|
147
151
|
while args.size > 0
|
148
152
|
arg = args.shift
|
149
153
|
if ["today", "to", "yesterday", "ye",
|
150
|
-
"this_week", "tw", "last_week", "lw"
|
154
|
+
"this_week", "tw", "last_week", "lw",
|
155
|
+
"this_month", "tm", "last_month", "lm"].include?(arg)
|
151
156
|
patterns.concat(Rbnotes.utils.expand_keyword(arg))
|
152
157
|
else
|
153
158
|
patterns << arg
|
@@ -173,6 +178,10 @@ module Rbnotes
|
|
173
178
|
patterns.concat(dates_in_this_week.map { |d| timestamp_pattern(d) })
|
174
179
|
when "last_week", "lw"
|
175
180
|
patterns.concat(dates_in_last_week.map { |d| timestamp_pattern(d) })
|
181
|
+
when "this_month", "tm"
|
182
|
+
patterns.concat(dates_in_this_month.map { |d| timestamp_pattern(d) })
|
183
|
+
when "last_month", "lm"
|
184
|
+
patterns.concat(dates_in_last_month.map { |d| timestamp_pattern(d) })
|
176
185
|
else
|
177
186
|
raise UnknownKeywordError, keyword
|
178
187
|
end
|
@@ -183,25 +192,28 @@ module Rbnotes
|
|
183
192
|
# Makes a headline with the timestamp and subject of the notes, it
|
184
193
|
# looks like as follows:
|
185
194
|
#
|
186
|
-
#
|
187
|
-
#
|
188
|
-
# |
|
189
|
-
# 20101010001000_123: I love Macintosh.
|
190
|
-
# 20100909090909_999: This is very very long
|
191
|
-
#
|
192
|
-
#
|
195
|
+
# |<--------------- console column size -------------------->|
|
196
|
+
# | |+-- timestamp ---+ +-subject (the 1st line of note) -+
|
197
|
+
# | | | |
|
198
|
+
# | |20101010001000_123: I love Macintosh. [EOL]
|
199
|
+
# | |20100909090909_999: This is very very long looong subj[EOL]
|
200
|
+
# |<->| | |
|
201
|
+
# ^--- pad ++
|
202
|
+
# ^--- delimiter (2 characters)
|
193
203
|
#
|
194
204
|
# The subject part will truncate when it is long.
|
195
205
|
|
196
|
-
def make_headline(timestamp, text)
|
206
|
+
def make_headline(timestamp, text, pad = nil)
|
197
207
|
_, column = IO.console_size
|
198
208
|
delimiter = ": "
|
199
209
|
timestamp_width = timestamp.to_s.size
|
200
210
|
subject_width = column - timestamp_width - delimiter.size - 1
|
211
|
+
subject_width -= pad.size unless pad.nil?
|
201
212
|
|
202
213
|
subject = remove_heading_markup(text[0])
|
203
214
|
|
204
215
|
ts_part = "#{timestamp.to_s} "[0..(timestamp_width - 1)]
|
216
|
+
ts_part.prepend(pad) unless pad.nil?
|
205
217
|
sj_part = truncate_str(subject, subject_width)
|
206
218
|
|
207
219
|
ts_part + delimiter + sj_part
|
@@ -210,6 +222,7 @@ module Rbnotes
|
|
210
222
|
##
|
211
223
|
# Finds all notes those timestamps match to given patterns in the
|
212
224
|
# given repository. Returns an Array contains Timestamp objects.
|
225
|
+
# The returned Array is sorted by Timestamp.
|
213
226
|
#
|
214
227
|
# :call-seq:
|
215
228
|
# find_notes(Array of timestamp patterns, Textrepo::Repository)
|
@@ -329,6 +342,36 @@ module Rbnotes
|
|
329
342
|
dates
|
330
343
|
end
|
331
344
|
|
345
|
+
def dates_in_this_month
|
346
|
+
today = Time.now
|
347
|
+
first_date = date(Time.new(today.year, today.mon, 1))
|
348
|
+
dates_in_month(first_date)
|
349
|
+
end
|
350
|
+
|
351
|
+
def dates_in_last_month
|
352
|
+
today = Time.now
|
353
|
+
first_date_of_this_month = date(Time.new(today.year, today.mon, 1))
|
354
|
+
dates_in_month(first_date_of_this_month.prev_month)
|
355
|
+
end
|
356
|
+
|
357
|
+
def dates_in_month(first_date)
|
358
|
+
days = days_in_month(first_date.mon, leap: first_date.leap?)
|
359
|
+
dates = [first_date]
|
360
|
+
1.upto(days - 1) { |i| dates << first_date.next_day(i) }
|
361
|
+
dates
|
362
|
+
end
|
363
|
+
|
364
|
+
DAYS = {
|
365
|
+
# 1 2 3 4 5 6 7 8 9 10 11 12
|
366
|
+
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
|
367
|
+
false => [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
|
368
|
+
true => [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
|
369
|
+
}
|
370
|
+
|
371
|
+
def days_in_month(mon, leap: false)
|
372
|
+
DAYS[leap][mon]
|
373
|
+
end
|
374
|
+
|
332
375
|
def truncate_str(str, size)
|
333
376
|
count = 0
|
334
377
|
result = ""
|
data/lib/rbnotes/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbnotes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mnbi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: textrepo
|
@@ -58,6 +58,9 @@ files:
|
|
58
58
|
- bin/setup
|
59
59
|
- conf/config.yml
|
60
60
|
- conf/config_deve.yml
|
61
|
+
- conf/config_deve_fzf_no_opts.yml
|
62
|
+
- conf/config_deve_no_picker.yml
|
63
|
+
- conf/config_deve_peco.yml
|
61
64
|
- conf/config_test.yml
|
62
65
|
- etc/zsh/_rbnotes
|
63
66
|
- exe/rbnotes
|