rbnotes 0.4.9 → 0.4.10
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 +7 -0
- data/Gemfile.lock +1 -1
- data/exe/rbnotes +1 -0
- data/lib/rbnotes/commands.rb +2 -1
- data/lib/rbnotes/commands/commands.rb +121 -0
- data/lib/rbnotes/commands/help.rb +1 -38
- data/lib/rbnotes/commands/update.rb +1 -1
- data/lib/rbnotes/version.rb +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e6de4675ffb2b409f72f240e4509a6d254793d977a8dd68cc54cf6d0c839e3d
|
4
|
+
data.tar.gz: 364d4deb47d049af7145024cfb3151639ea9cf0504963c1b72e5a15e465a84a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf90b255e23257a921f7a9254d4df5233f97394e73368f27f6a4a8e96989fa3aa76ab55fca69b201ecd9a15264d5d07cf974ee9b745854ca80d3c962accbe37a
|
7
|
+
data.tar.gz: c9fca12a0a6a71562a968775b09e3ebf7bda202ce7251666ab7b727236c47f8b5981d7ee703b94bfc22fae038cc161f76b10ed413ca28bcac3a9d9e0417f7f83
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
7
7
|
## [Unreleased]
|
8
8
|
Nothing to record here.
|
9
9
|
|
10
|
+
## [0.4.10] - 2020-11-20
|
11
|
+
### Added
|
12
|
+
- Add a new command `commands` to show all command names. (#71)
|
13
|
+
|
14
|
+
### Fixed
|
15
|
+
- Fix issue #69: crashes with invalid timestamp pattern.
|
16
|
+
|
10
17
|
## [0.4.9] - 2020-11-17
|
11
18
|
### Added
|
12
19
|
- Add a new option `--week` to the `list` command. (#67)
|
data/Gemfile.lock
CHANGED
data/exe/rbnotes
CHANGED
data/lib/rbnotes/commands.rb
CHANGED
@@ -58,13 +58,14 @@ Syntax:
|
|
58
58
|
|
59
59
|
Example usage:
|
60
60
|
#{Rbnotes::NAME} add [-t STAMP_PATTERN]
|
61
|
+
#{Rbnotes::NAME} commands [-d]
|
61
62
|
#{Rbnotes::NAME} delete [TIMESTAMP]
|
62
63
|
#{Rbnotes::NAME} export [TIMESTAMP [FILENAME]]
|
63
64
|
#{Rbnotes::NAME} import FILE
|
64
65
|
#{Rbnotes::NAME} list [STAMP_PATTERN|KEYWORD]
|
65
66
|
#{Rbnotes::NAME} search PATTERN [STAMP_PATTERN]
|
66
67
|
#{Rbnotes::NAME} show [TIMESTAMP]
|
67
|
-
#{Rbnotes::NAME} update [TIMESTAMP]
|
68
|
+
#{Rbnotes::NAME} update [-k] [TIMESTAMP]
|
68
69
|
|
69
70
|
Further help for each command:
|
70
71
|
#{Rbnotes::NAME} help commands
|
@@ -0,0 +1,121 @@
|
|
1
|
+
module Rbnotes::Commands
|
2
|
+
##
|
3
|
+
# Prints all command names into a single line. When `-d` (or
|
4
|
+
# `--deve-commands`) was specified, development commands (such
|
5
|
+
# `conf`) would be also printed in addition to general commands.
|
6
|
+
|
7
|
+
class Commands < Command
|
8
|
+
|
9
|
+
def description # :nodoc:
|
10
|
+
"Print all command names into a single line"
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute(args, conf)
|
14
|
+
@opts = {}
|
15
|
+
while args.size > 0
|
16
|
+
arg = args.shift
|
17
|
+
case arg.to_s
|
18
|
+
when "" # no options
|
19
|
+
break
|
20
|
+
when "-d", "--deve-commands"
|
21
|
+
@opts[:print_deve_commands] = true
|
22
|
+
else # invalid options or args
|
23
|
+
args.unshift(arg)
|
24
|
+
raise ArgumentError, "invalid option or argument: %s" % args.join(" ")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
puts commands(@opts[:print_deve_commands]).join(" ")
|
29
|
+
end
|
30
|
+
|
31
|
+
def help
|
32
|
+
puts <<HELP
|
33
|
+
usage:
|
34
|
+
#{Rbnotes::NAME} [-d|--deve-commands]
|
35
|
+
|
36
|
+
Print all command names into a single line. If "-d" option (or
|
37
|
+
"--deve-commands") is specified, commands for development purpose are
|
38
|
+
also printed.
|
39
|
+
|
40
|
+
HELP
|
41
|
+
print_commands
|
42
|
+
end
|
43
|
+
|
44
|
+
# :stopdoc:
|
45
|
+
private
|
46
|
+
|
47
|
+
##
|
48
|
+
# Enumerates all command names.
|
49
|
+
#
|
50
|
+
# :call-seq:
|
51
|
+
# commands(builtins = false) -> [Array of Strings]
|
52
|
+
|
53
|
+
def commands(include_builtins = false)
|
54
|
+
names = external_commands.map { |cmd| cmd.to_s.downcase }
|
55
|
+
names += builtin_commands.map { |cmd| cmd.to_s.downcase } if include_builtins
|
56
|
+
names
|
57
|
+
end
|
58
|
+
|
59
|
+
def external_commands
|
60
|
+
Dir.glob("*.rb", :base => __dir__) { |rb|
|
61
|
+
require_relative rb
|
62
|
+
}
|
63
|
+
Rbnotes::Commands.constants.difference([:Builtins, :Command]).sort
|
64
|
+
end
|
65
|
+
|
66
|
+
def builtin_commands
|
67
|
+
Rbnotes::Commands::Builtins.constants.sort
|
68
|
+
end
|
69
|
+
|
70
|
+
def print_commands
|
71
|
+
Dir.glob("*.rb", :base => __dir__) { |rb|
|
72
|
+
require_relative rb
|
73
|
+
}
|
74
|
+
puts "#{Rbnotes::NAME.capitalize} Commands:"
|
75
|
+
print_commands_desc(external_commands)
|
76
|
+
puts
|
77
|
+
puts "for development purpose"
|
78
|
+
print_builtins_desc(builtin_commands)
|
79
|
+
end
|
80
|
+
|
81
|
+
def print_commands_desc(commands)
|
82
|
+
print_desc(Rbnotes::Commands, commands)
|
83
|
+
end
|
84
|
+
|
85
|
+
def print_builtins_desc(builtins)
|
86
|
+
print_desc(Rbnotes::Commands::Builtins, builtins)
|
87
|
+
end
|
88
|
+
|
89
|
+
class CmdNames
|
90
|
+
attr_reader :symbol, :name, :size
|
91
|
+
def initialize(cmd)
|
92
|
+
@symbol = cmd
|
93
|
+
@name = cmd.to_s.downcase
|
94
|
+
@size = name.size
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def print_desc(mod, commands)
|
99
|
+
cmds = commands.map { |cmd| CmdNames.new(cmd) }
|
100
|
+
name_part_size = cmds.map(&:size).max + 2
|
101
|
+
cmds.map { |cmd|
|
102
|
+
puts "#{spaces(4)}#{name_part(cmd.name, name_part_size)} #{desc_part(cmd.symbol, mod)}"
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
def name_part(name, size)
|
107
|
+
"#{name}#{spaces(size)}"[0, size]
|
108
|
+
end
|
109
|
+
|
110
|
+
def desc_part(symbol, mod)
|
111
|
+
mod.const_get(symbol, false).new.description
|
112
|
+
end
|
113
|
+
|
114
|
+
def spaces(size)
|
115
|
+
Array.new(size, " ").join
|
116
|
+
end
|
117
|
+
|
118
|
+
# :startdoc:
|
119
|
+
|
120
|
+
end
|
121
|
+
end
|
@@ -7,7 +7,7 @@ module Rbnotes::Commands
|
|
7
7
|
class Help < Command
|
8
8
|
|
9
9
|
def description # :nodoc:
|
10
|
-
"
|
10
|
+
"Print help of each command"
|
11
11
|
end
|
12
12
|
|
13
13
|
##
|
@@ -20,8 +20,6 @@ module Rbnotes::Commands
|
|
20
20
|
case cmd_name
|
21
21
|
when nil
|
22
22
|
self.help
|
23
|
-
when "commands"
|
24
|
-
print_commands
|
25
23
|
else
|
26
24
|
Commands.load(cmd_name).help
|
27
25
|
end
|
@@ -59,40 +57,5 @@ Further information:
|
|
59
57
|
HELP
|
60
58
|
end
|
61
59
|
|
62
|
-
# :stopdoc:
|
63
|
-
private
|
64
|
-
|
65
|
-
def print_commands
|
66
|
-
Dir.glob("*.rb", :base => __dir__) { |rb|
|
67
|
-
next if rb == "help.rb"
|
68
|
-
require_relative rb
|
69
|
-
}
|
70
|
-
commands = Commands.constants.difference([:Builtins, :Command])
|
71
|
-
builtins = Commands::Builtins.constants
|
72
|
-
|
73
|
-
puts "#{Rbnotes::NAME.capitalize} Commands:"
|
74
|
-
print_commands_desc(commands.sort)
|
75
|
-
puts
|
76
|
-
puts "for development purpose"
|
77
|
-
print_builtins_desc(builtins.sort)
|
78
|
-
end
|
79
|
-
|
80
|
-
def print_commands_desc(commands)
|
81
|
-
print_desc(Commands, commands)
|
82
|
-
end
|
83
|
-
|
84
|
-
def print_builtins_desc(builtins)
|
85
|
-
print_desc(Commands::Builtins, builtins)
|
86
|
-
end
|
87
|
-
|
88
|
-
def print_desc(mod, commands)
|
89
|
-
commands.map { |cmd|
|
90
|
-
name = "#{cmd.to_s.downcase} "[0, 8]
|
91
|
-
desc = mod.const_get(cmd, false).new.description
|
92
|
-
puts " #{name} #{desc}"
|
93
|
-
}
|
94
|
-
end
|
95
|
-
|
96
|
-
# :startdoc:
|
97
60
|
end
|
98
61
|
end
|
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.10
|
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-
|
11
|
+
date: 2020-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: textrepo
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- lib/rbnotes.rb
|
64
64
|
- lib/rbnotes/commands.rb
|
65
65
|
- lib/rbnotes/commands/add.rb
|
66
|
+
- lib/rbnotes/commands/commands.rb
|
66
67
|
- lib/rbnotes/commands/delete.rb
|
67
68
|
- lib/rbnotes/commands/export.rb
|
68
69
|
- lib/rbnotes/commands/help.rb
|