rbnotes 0.4.17 → 0.4.18
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/CHANGELOG.md +15 -1
- data/Gemfile.lock +1 -1
- data/README.md +47 -2
- data/lib/rbnotes/commands/add.rb +72 -8
- data/lib/rbnotes/commands/list.rb +8 -9
- data/lib/rbnotes/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a831d67abfd0bae05156f047b6baf44428bc4940058e43bfb9825b5d91c4177
|
4
|
+
data.tar.gz: 7fb70e39e9feb75edfabe3461697ddfb0145cf449205c25068471687952908d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ea3b1ea6517130e5ba5ece651da8f3e30f1013aaa40aa375ad16fb09a7e07a033c7da4e59a721fade178ed4720cf804cb60cc843ea42cbcb177fdf81f947f01
|
7
|
+
data.tar.gz: 6a19760bdecd4b967717c30bed0974a8098d5b3f9e9df9a90bd81cd6b1498a6ba226f2e5654547f1ec67da9beb3d54c740ab9895163d8488df9801b74539f8aa
|
data/CHANGELOG.md
CHANGED
@@ -5,7 +5,21 @@ 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
|
8
|
+
- (nothing to record here)
|
9
|
+
|
10
|
+
## [0.4.18] - 2021-04-29
|
11
|
+
### Added
|
12
|
+
- Use ERB to generate the initial content of a new note from the
|
13
|
+
template file (`add`) (#125)
|
14
|
+
|
15
|
+
### Fixed
|
16
|
+
- Add info about template feature of `add`: (#124)
|
17
|
+
- update help text of `add`,
|
18
|
+
- update `README.md`.
|
19
|
+
- Add description about `ugrep` to `README.md`. (#122)
|
20
|
+
- Fix issue #118: help text of `list` is wrong.
|
21
|
+
- Fix issue #119: a test for `Rbnotes::Utils` may fails.
|
22
|
+
- fix the test.
|
9
23
|
|
10
24
|
## [0.4.17] - 2021-04-21
|
11
25
|
### Added
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -149,6 +149,7 @@ The short-hand notation of the home directory ("~") is usable.
|
|
149
149
|
|
150
150
|
##### Miscellaneous variables (optional)
|
151
151
|
|
152
|
+
- :template : specify a template file for `add` command
|
152
153
|
- :pager : specify a pager program
|
153
154
|
- :editor : specify a editor program
|
154
155
|
- :searcher: specify a program to perform search
|
@@ -170,13 +171,15 @@ don't have to set `:searcher_options` for them.
|
|
170
171
|
| `ggrep` | `["-i", "-n", "-H", "-R", "-E"]` |
|
171
172
|
| `gegrep` | `["-i", "-n", "-H", "-R"]` |
|
172
173
|
| `rg` | `["-S", "-n", "--no-heading", "--color", "never"]` |
|
174
|
+
| `ugrep` | `["-i", "-n", "-H", "-R", "--color=never"]` |
|
173
175
|
|
174
176
|
Those searcher names are used in macOS (with Homebrew). Any other OS
|
175
177
|
might use different names.
|
176
178
|
|
177
179
|
- `grep` and `egrep` -> BSD grep (macOS default)
|
178
|
-
- `ggrep` and `gegrep` -> GNU grep
|
179
|
-
- `rg` -> ripgrep
|
180
|
+
- `ggrep` and `gegrep` -> [GNU grep](https://www.gnu.org/software/grep/)
|
181
|
+
- `rg` -> [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep)
|
182
|
+
- `ugrep` -> [Genivia/ugrep](https://github.com/Genivia/ugrep)
|
180
183
|
|
181
184
|
If the name is different, `:searcher_options` should be set with the
|
182
185
|
same value. For example, if you system use the name `gnugrep` as GNU
|
@@ -184,6 +187,48 @@ grep, and you want to use it as the searcher (that is, set `gnugrep`
|
|
184
187
|
to `:searcher`), you should set `:searcher_options` value with `["-i",
|
185
188
|
"-n", "-R", "-E"]`.
|
186
189
|
|
190
|
+
##### Template file for `add` command
|
191
|
+
|
192
|
+
`Add` command always searches a template file in the default
|
193
|
+
directory. The default directory is,
|
194
|
+
|
195
|
+
- `$XDG_CONIFG_HOME/rbnotes/templates` (if `$XDG_CONFIG_HOME` is defined)
|
196
|
+
|
197
|
+
or
|
198
|
+
|
199
|
+
- `$HOME/.config/rbnotes/templates`
|
200
|
+
|
201
|
+
If a file which named as `default.md` is found in the above directory,
|
202
|
+
it will use as a template file to generate the initial content of a
|
203
|
+
new note.
|
204
|
+
|
205
|
+
When a command line option or a setting of the configuration file is
|
206
|
+
specified to use a template file, `add` command will read it instead
|
207
|
+
of the default template file.
|
208
|
+
|
209
|
+
Command line option of `add` to specify a template file is:
|
210
|
+
|
211
|
+
``` shell
|
212
|
+
> rbntoes add -f /somewhere/template.md
|
213
|
+
```
|
214
|
+
|
215
|
+
See the above section about the configuration file setting to specify
|
216
|
+
a template file.
|
217
|
+
|
218
|
+
Though a template file can be written any format of text (markdown,
|
219
|
+
HTML, plain text, or ...), `add` command will process the content
|
220
|
+
using ERB. So, using ERB syntax, you can mix Ruby code in a template
|
221
|
+
file.
|
222
|
+
|
223
|
+
Here is a very simple and short example to use ERB syntax:
|
224
|
+
|
225
|
+
``` markdown
|
226
|
+
## <%= Time.now.strftime("%Y-%m-%d") %>
|
227
|
+
```
|
228
|
+
|
229
|
+
It just insert a date string like "2021-04-29" at the top of a new
|
230
|
+
note which generates by `add` command.
|
231
|
+
|
187
232
|
##### Default values for mandatory variables
|
188
233
|
|
189
234
|
All mandatory variables have their default values. Here is the list
|
data/lib/rbnotes/commands/add.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Rbnotes::Commands
|
2
2
|
|
3
|
+
require "erb"
|
4
|
+
|
3
5
|
##
|
4
6
|
# Adds a new note to the repository. If no options, a new timestamp
|
5
7
|
# is generated at the execution time, then it is attached to the
|
@@ -16,15 +18,39 @@ module Rbnotes::Commands
|
|
16
18
|
# "202011041722" : year, date and time (omit second part)
|
17
19
|
# "11041722" : date and time (omit year and second part)
|
18
20
|
#
|
21
|
+
# Also accepts an option with `-f FILENAME` (or `--template-file`)
|
22
|
+
# to specify a template file which will be the initial content of a
|
23
|
+
# new note.
|
24
|
+
#
|
19
25
|
# This command starts the external editor program to prepare text to
|
20
26
|
# store. The editor program will be searched in the following order:
|
21
27
|
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
28
|
+
# 1. conf[:editor] (conf is the 1st arg of execute method)
|
29
|
+
# 2. ENV["EDITOR"]
|
30
|
+
# 3. "nano"
|
31
|
+
# 4. "vi"
|
26
32
|
#
|
27
33
|
# If none of the above editor is available, the command fails.
|
34
|
+
#
|
35
|
+
# TEMPLATE FILE:
|
36
|
+
#
|
37
|
+
# This command search a file as its template which will be the initial
|
38
|
+
# conent of a new note when an option or a setting in the configuration
|
39
|
+
# file (`:template`) is specified a template file.
|
40
|
+
#
|
41
|
+
# Or, even if neither an option nor a setting about a template file is
|
42
|
+
# specified, it always searches the default directory to read a template
|
43
|
+
# file. The directory is:
|
44
|
+
#
|
45
|
+
# - $XDG_CONIFG_HOME/rbnotes/templates (if $XDG_CONFIG_HOME is defined)
|
46
|
+
# or
|
47
|
+
# - $HOME/.config/rbnotes/templates
|
48
|
+
#
|
49
|
+
# If a file, `default.md` exists in the above directory, it will used as
|
50
|
+
# a template.
|
51
|
+
#
|
52
|
+
# A template file can be written in ERB syntax. See ERB manual to know
|
53
|
+
# about how to mix ruby code and text content in ERB syntax.
|
28
54
|
|
29
55
|
class Add < Command
|
30
56
|
|
@@ -78,16 +104,26 @@ usage:
|
|
78
104
|
Add a new note to the repository. If no options, a new timestamp is
|
79
105
|
generated at the execution time, then it is attached to the note.
|
80
106
|
|
107
|
+
OPTIONS:
|
108
|
+
-t, --timestamp STAMP_PATTERN
|
109
|
+
-f, --template-file FILENAME
|
110
|
+
|
81
111
|
Accept an option with `-t STAMP_PATTERN` (or `--timestamp`), a
|
82
|
-
timestamp is generated according to `STAMP_PATTERN`.
|
112
|
+
timestamp of a new note is generated according to `STAMP_PATTERN`.
|
83
113
|
|
84
|
-
|
114
|
+
Also accepts an option with `-f FILENAME` (or `--template-file`) to
|
115
|
+
specify a template file which will be the initial content of a new
|
116
|
+
note. See below section more about a template file.
|
117
|
+
|
118
|
+
STAMP_PATTERN could be:
|
85
119
|
|
86
120
|
"20201104172230_078" : full qualified timestamp string
|
87
121
|
"20201104172230" : full qualified timestamp string (no suffix)
|
88
122
|
"202011041722" : year, date and time (omit second part)
|
89
123
|
"11041722" : date and time (omit year and second part)
|
90
124
|
|
125
|
+
EDITOR:
|
126
|
+
|
91
127
|
This command starts the external editor program to prepare text to
|
92
128
|
store. The editor program will be searched in the following order:
|
93
129
|
|
@@ -97,6 +133,29 @@ store. The editor program will be searched in the following order:
|
|
97
133
|
4. "vi"
|
98
134
|
|
99
135
|
If none of the above editor is available, the execution fails.
|
136
|
+
|
137
|
+
TEMPLATE FILE:
|
138
|
+
|
139
|
+
This command search a file as its template which will be the initial
|
140
|
+
conent of a new note when an option or a setting in the configuration
|
141
|
+
file (`:template`) is specified a template file.
|
142
|
+
|
143
|
+
Or, even if neither an option nor a setting about a template file is
|
144
|
+
specified, it always searches the default directory to read a template
|
145
|
+
file. The directory is:
|
146
|
+
|
147
|
+
- $XDG_CONIFG_HOME/rbnotes/templates (if $XDG_CONFIG_HOME is defined)
|
148
|
+
|
149
|
+
or
|
150
|
+
|
151
|
+
- $HOME/.config/rbnotes/templates
|
152
|
+
|
153
|
+
If a file, `default.md` exists in the above directory, it will used as
|
154
|
+
a template.
|
155
|
+
|
156
|
+
A template file can be written in ERB syntax. See ERB manual to know
|
157
|
+
about how to mix ruby code and text content in ERB syntax.
|
158
|
+
|
100
159
|
HELP
|
101
160
|
end
|
102
161
|
|
@@ -144,10 +203,15 @@ HELP
|
|
144
203
|
|
145
204
|
if template_path
|
146
205
|
raise Rbnotes::NoTemplateFileError, template_path unless FileTest.exist?(template_path)
|
147
|
-
template = File.readlines(template_path, chomp: true)
|
148
206
|
else
|
149
207
|
template_path = default_template_file(conf)
|
150
|
-
|
208
|
+
return nil unless FileTest.exist?(template_path)
|
209
|
+
end
|
210
|
+
|
211
|
+
erb_source = File.read(template_path)
|
212
|
+
if erb_source and !erb_source.empty?
|
213
|
+
erb = ERB.new(erb_source)
|
214
|
+
template = erb.result.split("\n")
|
151
215
|
end
|
152
216
|
|
153
217
|
template
|
@@ -92,11 +92,16 @@ module Rbnotes::Commands
|
|
92
92
|
usage:
|
93
93
|
#{Rbnotes::NAME} list [OPTIONS] [STAMP_PATTERN|KEYWORD]
|
94
94
|
|
95
|
-
Show a list of notes. When
|
96
|
-
|
97
|
-
pattern are listed. Instead of STAMP_PATTERN, some KEYWORDs could be
|
95
|
+
Show a list of notes. When specified several STAMP_PATTERNs, only
|
96
|
+
those match the pattern are listed. Also, some KEYWORDs could be
|
98
97
|
used.
|
99
98
|
|
99
|
+
When no STAMP_PATTERN or KEYWORD was specified, the behavior of this
|
100
|
+
command could be specified with a configuration setting,
|
101
|
+
":list_default:". The value must be one of valid keywords. If no
|
102
|
+
settings was also given, this command would behave like "today" was
|
103
|
+
specified as the setting.
|
104
|
+
|
100
105
|
OPTIONS:
|
101
106
|
-v, --verbose
|
102
107
|
-w, --week
|
@@ -130,12 +135,6 @@ like as follows:
|
|
130
135
|
20210418125353: Hoge
|
131
136
|
:
|
132
137
|
|
133
|
-
When no STAMP_PATTERN or KEYWORD was specified, the behavior of this
|
134
|
-
command could be specified with a configuration setting,
|
135
|
-
":list_default:". The value must be one of valid keywords. If no
|
136
|
-
settings was also given, this command would behave like "today" was
|
137
|
-
specified as the setting.
|
138
|
-
|
139
138
|
An option "--week" is also acceptable. It specifies to enumerate all
|
140
139
|
days of a week. Typically, the option is used with a STAMP_PATTERN
|
141
140
|
which specifies a date, such "20201117", then it enumerates all days
|
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.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mnbi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: textrepo
|