rbnotes 0.3.1 → 0.4.0
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 +4 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -4
- data/exe/rbnotes +0 -2
- data/lib/rbnotes/commands/list.rb +3 -0
- data/lib/rbnotes/commands/search.rb +46 -0
- data/lib/rbnotes/commands/update.rb +2 -2
- data/lib/rbnotes/utils.rb +5 -1
- data/lib/rbnotes/version.rb +2 -2
- data/rbnotes.gemspec +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87313e606a2e62b90b3e1c3f00ff46300f0e7a14e3b2fc8ffcad0abfda217646
|
4
|
+
data.tar.gz: 95b8a57ca200b8a8460f61edfe0d796dcfec2f63cba4ec024294915f07752aa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 238f9140497e09ee4aedc331716c5725e61e00332255160d70844099e7f5d3f072f00edc3800e063f1f09e9e9c67669ca901c60c16c88a37e4594c07c9744238
|
7
|
+
data.tar.gz: de00ee60c187517ec47f4601c572abc83f99dc3f4cde96c4db86e8cdda012eda5bdd5b1529fdf086f7f1858637720752bba8fa244d3e21f63d25456c56b7c71e
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
7
7
|
## [Unreleased]
|
8
8
|
Nothing to record here.
|
9
9
|
|
10
|
+
## [0.4.0] - 2020-11-03
|
11
|
+
### Added
|
12
|
+
- Add a new command `search` to perform full text search. (#33)
|
13
|
+
|
10
14
|
## [0.3.1] - 2020-10-30
|
11
15
|
### Added
|
12
16
|
- Add feature to specify configuration file in the command line. (#21)
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rbnotes (0.
|
5
|
-
textrepo (~> 0.
|
4
|
+
rbnotes (0.4.0)
|
5
|
+
textrepo (~> 0.5)
|
6
6
|
unicode-display_width (~> 1.7)
|
7
7
|
|
8
8
|
GEM
|
@@ -10,7 +10,7 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
minitest (5.14.2)
|
12
12
|
rake (13.0.1)
|
13
|
-
textrepo (0.
|
13
|
+
textrepo (0.5.3)
|
14
14
|
unicode-display_width (1.7.0)
|
15
15
|
|
16
16
|
PLATFORMS
|
@@ -20,7 +20,7 @@ DEPENDENCIES
|
|
20
20
|
minitest (~> 5.0)
|
21
21
|
rake (~> 13.0)
|
22
22
|
rbnotes!
|
23
|
-
textrepo (~> 0.
|
23
|
+
textrepo (~> 0.5)
|
24
24
|
|
25
25
|
BUNDLED WITH
|
26
26
|
2.1.4
|
data/exe/rbnotes
CHANGED
@@ -24,6 +24,9 @@ module Rbnotes
|
|
24
24
|
# "20201027": specifies year and date
|
25
25
|
# - all Timestamps those have the same year and date would match
|
26
26
|
#
|
27
|
+
# "202011": specifies year and month
|
28
|
+
# - all Timestamps those have the same year and month would match
|
29
|
+
#
|
27
30
|
# "2020": specifies year only
|
28
31
|
# - all Timestamps those have the same year would match
|
29
32
|
#
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# :markup: markdown
|
2
|
+
|
3
|
+
##
|
4
|
+
# Searches a given pattern in notes those have timestamps match a
|
5
|
+
# given timestamp pattern. The first argument is a pattern to search.
|
6
|
+
# It is a String object represents a portion of text or it may a
|
7
|
+
# String represents a regular expression. The second argument is
|
8
|
+
# optional and it is a timestamp pattern to specify the search target.
|
9
|
+
#
|
10
|
+
# A pattern for search is mandatory. If no pattern, raises
|
11
|
+
# Rbnotes::MissingArgumentError.
|
12
|
+
#
|
13
|
+
# Example of PATTERN:
|
14
|
+
# ""rbnotes" (a word)
|
15
|
+
# "macOS Big Sur" (a few words)
|
16
|
+
# "2[0-9]{3}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])" (a regular expression)
|
17
|
+
#
|
18
|
+
# A timestamp pattern is optional. If no timestamp pattern, all notes
|
19
|
+
# in the repository would be target of search.
|
20
|
+
#
|
21
|
+
# See the document of `Rbnotes::Commands::List#execute` to know about
|
22
|
+
# a timestamp pattern.
|
23
|
+
|
24
|
+
# :stopdoc:
|
25
|
+
|
26
|
+
module Rbnotes
|
27
|
+
class Commands::Search < Commands::Command
|
28
|
+
def execute(args, conf)
|
29
|
+
pattern = args.shift
|
30
|
+
raise MissingArgumentError, args if pattern.nil?
|
31
|
+
|
32
|
+
timestamp_pattern = args.shift # `nil` is acceptable
|
33
|
+
|
34
|
+
repo = Textrepo.init(conf)
|
35
|
+
begin
|
36
|
+
result = repo.search(pattern, timestamp_pattern)
|
37
|
+
rescue Textrepo::InvalidSearchResultError => e
|
38
|
+
puts e.message
|
39
|
+
else
|
40
|
+
result.each { |stamp, num, match|
|
41
|
+
puts "#{stamp}:#{num}:#{match}"
|
42
|
+
}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -44,7 +44,7 @@ module Rbnotes::Commands
|
|
44
44
|
end
|
45
45
|
|
46
46
|
tmpfile = run_with_tmpfile(editor, target_stamp.to_s, text)
|
47
|
-
text = File.readlines(tmpfile)
|
47
|
+
text = File.readlines(tmpfile, :chomp => true)
|
48
48
|
|
49
49
|
unless text.empty?
|
50
50
|
newstamp = nil
|
@@ -53,7 +53,7 @@ module Rbnotes::Commands
|
|
53
53
|
rescue StandardError => e
|
54
54
|
puts e.message
|
55
55
|
else
|
56
|
-
puts "Update the note [%s -> %s]" % [target_stamp, newstamp]
|
56
|
+
puts "Update the note [%s -> %s]" % [target_stamp, newstamp] unless target_stamp == newstamp
|
57
57
|
ensure
|
58
58
|
# Don't forget to remove the temporary file.
|
59
59
|
File.delete(tmpfile)
|
data/lib/rbnotes/utils.rb
CHANGED
@@ -113,7 +113,11 @@ module Rbnotes
|
|
113
113
|
# foo bar baz ...
|
114
114
|
#
|
115
115
|
# then, only the first string is interested
|
116
|
-
|
116
|
+
begin
|
117
|
+
io.gets.split(":")[0].rstrip
|
118
|
+
rescue NoMethodError => _
|
119
|
+
nil
|
120
|
+
end
|
117
121
|
end
|
118
122
|
module_function :read_arg
|
119
123
|
|
data/lib/rbnotes/version.rb
CHANGED
data/rbnotes.gemspec
CHANGED
@@ -25,6 +25,6 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
|
-
spec.add_dependency "textrepo", "~> 0.
|
28
|
+
spec.add_dependency "textrepo", "~> 0.5"
|
29
29
|
spec.add_dependency "unicode-display_width", "~> 1.7"
|
30
30
|
end
|
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
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mnbi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: textrepo
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: unicode-display_width
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- lib/rbnotes/commands/delete.rb
|
67
67
|
- lib/rbnotes/commands/import.rb
|
68
68
|
- lib/rbnotes/commands/list.rb
|
69
|
+
- lib/rbnotes/commands/search.rb
|
69
70
|
- lib/rbnotes/commands/show.rb
|
70
71
|
- lib/rbnotes/commands/update.rb
|
71
72
|
- lib/rbnotes/conf.rb
|