cli-template 3.1.0 → 3.2.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/README.md +44 -5
- data/lib/cli-template/helpers.rb +3 -0
- data/lib/cli-template/sequence.rb +5 -4
- data/lib/cli-template/version.rb +1 -1
- data/lib/templates/colon_namespaces/%project_name%.gemspec.tt +30 -0
- data/lib/templates/colon_namespaces/.gitignore +16 -0
- data/lib/templates/colon_namespaces/.rspec +2 -0
- data/lib/templates/colon_namespaces/CHANGELOG.md +7 -0
- data/lib/templates/colon_namespaces/Gemfile.tt +6 -0
- data/lib/templates/colon_namespaces/Guardfile +19 -0
- data/lib/templates/colon_namespaces/LICENSE.txt.tt +22 -0
- data/lib/templates/colon_namespaces/README.md.tt +47 -0
- data/lib/templates/colon_namespaces/Rakefile +6 -0
- data/lib/templates/colon_namespaces/exe/%project_name%.tt +14 -0
- data/lib/templates/colon_namespaces/lib/%project_name%.rb.tt +12 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/cli.rb.tt +166 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/command.rb.tt +186 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/completer.rb.tt +145 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/completer/script.rb.tt +6 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/completer/script.sh.tt +16 -0
- data/lib/templates/{default → colon_namespaces}/lib/%underscored_name%/completions.rb.tt +0 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/help.rb.tt +9 -0
- data/lib/templates/{default → colon_namespaces}/lib/%underscored_name%/help/completions.md.tt +0 -0
- data/lib/templates/{default → colon_namespaces}/lib/%underscored_name%/help/completions/script.md.tt +0 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/help/hello.md.tt +5 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/help/main.md.tt +5 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/help/sub/goodbye.md.tt +5 -0
- data/lib/templates/{default → colon_namespaces}/lib/%underscored_name%/main.rb.tt +0 -0
- data/lib/templates/{default → colon_namespaces}/lib/%underscored_name%/rake_command.rb.tt +0 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/sub.rb.tt +12 -0
- data/lib/templates/colon_namespaces/lib/%underscored_name%/version.rb.tt +3 -0
- data/lib/templates/colon_namespaces/spec/lib/cli_spec.rb.tt +37 -0
- data/lib/templates/colon_namespaces/spec/spec_helper.rb.tt +29 -0
- data/lib/templates/default/.gitignore +1 -1
- data/lib/templates/default/Gemfile.lock.tt +64 -0
- data/lib/templates/default/LICENSE.txt +1 -1
- data/lib/templates/default/lib/%project_name%.rb.tt +1 -2
- data/lib/templates/default/lib/%underscored_name%/cli.rb.tt +24 -165
- data/lib/templates/default/lib/%underscored_name%/command.rb.tt +21 -151
- data/lib/templates/default/lib/%underscored_name%/completer.rb.tt +58 -57
- data/lib/templates/default/lib/%underscored_name%/completer/script.sh.tt +4 -10
- data/lib/templates/default/lib/%underscored_name%/completion.rb.tt +15 -0
- data/lib/templates/default/lib/%underscored_name%/help/completion.md.tt +22 -0
- data/lib/templates/default/lib/%underscored_name%/help/completion_script.md.tt +3 -0
- data/lib/templates/default/spec/lib/cli_spec.rb.tt +18 -17
- data/lib/templates/default/spec/spec_helper.rb.tt +2 -2
- data/spec/lib/cli_spec.rb +49 -38
- metadata +35 -7
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
# Code Explanation. This is mainly focused on the run method.
|
|
2
2
|
#
|
|
3
|
-
# There are 3 main branches of logic for
|
|
3
|
+
# There are 3 main branches of logic for completion:
|
|
4
4
|
#
|
|
5
5
|
# 1. top-level commands - when there are zero completed words
|
|
6
|
-
# 2. params
|
|
7
|
-
# 3. options
|
|
6
|
+
# 2. params completion - when a command has some required params
|
|
7
|
+
# 3. options completion - when we have finished auto-completing the top-level command and required params, the rest of the completion words will be options
|
|
8
8
|
#
|
|
9
9
|
# Terms:
|
|
10
10
|
#
|
|
11
11
|
# params - these are params in the command itself. Example: for the method `scale(service, count)` the params would be `service, count`.
|
|
12
12
|
# options - these are cli options flags. Examples: --noop, --verbose
|
|
13
13
|
#
|
|
14
|
-
# When we are done processing method params, the
|
|
14
|
+
# When we are done processing method params, the completion will be only options. When the detected params size is greater than the arity we are have finished auto-completing the parameters in the method declaration. For example, say you had a method for a CLI command with the following form:
|
|
15
15
|
#
|
|
16
16
|
# scale(service, count) = arity of 2
|
|
17
17
|
#
|
|
18
18
|
# <%= project_name %> scale service count [TAB] # there are 3 params including the "scale" command
|
|
19
19
|
#
|
|
20
|
-
# So the
|
|
20
|
+
# So the completion will be something like:
|
|
21
21
|
#
|
|
22
22
|
# --noop --verbose etc
|
|
23
23
|
#
|
|
24
24
|
# A note about artity values:
|
|
25
25
|
#
|
|
26
|
-
# We are using the arity of the command method to determine if we have finish auto-completing the params
|
|
26
|
+
# We are using the arity of the command method to determine if we have finish auto-completing the params completion. When the ruby method has a splat param, it's arity will be negative. Here are some example methods and their arities.
|
|
27
27
|
#
|
|
28
28
|
# ship(service) = 1
|
|
29
29
|
# scale(service, count) = 2
|
|
@@ -34,22 +34,22 @@
|
|
|
34
34
|
#
|
|
35
35
|
# To test:
|
|
36
36
|
#
|
|
37
|
-
# <%= project_name %>
|
|
38
|
-
# <%= project_name %>
|
|
39
|
-
# <%= project_name %>
|
|
40
|
-
# <%= project_name %>
|
|
41
|
-
# <%= project_name %>
|
|
37
|
+
# <%= project_name %> completion
|
|
38
|
+
# <%= project_name %> completion hello
|
|
39
|
+
# <%= project_name %> completion hello name
|
|
40
|
+
# <%= project_name %> completion hello name --
|
|
41
|
+
# <%= project_name %> completion hello name --noop
|
|
42
42
|
#
|
|
43
|
-
# <%= project_name %>
|
|
44
|
-
# <%= project_name %>
|
|
45
|
-
# <%= project_name %>
|
|
43
|
+
# <%= project_name %> completion
|
|
44
|
+
# <%= project_name %> completion sub:goodbye
|
|
45
|
+
# <%= project_name %> completion sub:goodbye name
|
|
46
46
|
#
|
|
47
47
|
# Note when testing, the first top-level word must be an exact match
|
|
48
48
|
#
|
|
49
|
-
# <%= project_name %>
|
|
50
|
-
# <%= project_name %>
|
|
49
|
+
# <%= project_name %> completion hello # works fine
|
|
50
|
+
# <%= project_name %> completion he # incomplete, this will just break
|
|
51
51
|
#
|
|
52
|
-
# The
|
|
52
|
+
# The completion assumes that the top-level word that is being passed in
|
|
53
53
|
# from completor/scripts.sh will always match exactly. This must be the
|
|
54
54
|
# case. For parameters, the word does not have to match exactly.
|
|
55
55
|
#
|
|
@@ -57,56 +57,54 @@ module <%= project_class_name %>
|
|
|
57
57
|
class Completer
|
|
58
58
|
autoload :Script, '<%= underscored_name %>/completer/script'
|
|
59
59
|
|
|
60
|
-
def initialize(*params)
|
|
60
|
+
def initialize(command_class, *params)
|
|
61
61
|
@params = params
|
|
62
|
+
@current_command = @params[0]
|
|
63
|
+
@command_class = command_class # CLI initiall
|
|
62
64
|
end
|
|
63
65
|
|
|
64
|
-
def
|
|
65
|
-
@
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return nil unless current_command
|
|
71
|
-
|
|
72
|
-
if current_command.include?(':')
|
|
73
|
-
words = current_command.split(':')
|
|
74
|
-
words.pop
|
|
75
|
-
words.join(':')
|
|
66
|
+
def run
|
|
67
|
+
if subcommand?(@current_command)
|
|
68
|
+
subcommand_class = @command_class.subcommand_classes[@current_command]
|
|
69
|
+
@params.shift # destructive
|
|
70
|
+
Completer.new(subcommand_class, *@params).run # recursively use subcommand
|
|
71
|
+
return
|
|
76
72
|
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# Example: sub:goodbye => "goodbye"
|
|
80
|
-
def trailing_command
|
|
81
|
-
current_command.split(':').last
|
|
82
|
-
end
|
|
83
73
|
|
|
84
|
-
|
|
85
|
-
|
|
74
|
+
# full command has been found!
|
|
75
|
+
unless found?(@current_command)
|
|
86
76
|
puts all_commands
|
|
87
77
|
return
|
|
88
78
|
end
|
|
89
79
|
|
|
90
|
-
# will only get to here if
|
|
91
|
-
arity = command_class.instance_method(
|
|
80
|
+
# will only get to here if command aws found (above)
|
|
81
|
+
arity = @command_class.instance_method(@current_command).arity.abs
|
|
92
82
|
if @params.size <= arity
|
|
93
|
-
puts
|
|
83
|
+
puts params_completion
|
|
94
84
|
else
|
|
95
|
-
puts
|
|
85
|
+
puts options_completion
|
|
96
86
|
end
|
|
97
87
|
end
|
|
98
88
|
|
|
89
|
+
def subcommand?(command)
|
|
90
|
+
@command_class.subcommands.include?(command)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def found?(command)
|
|
94
|
+
public_methods = @command_class.public_instance_methods - Object.methods
|
|
95
|
+
command && public_methods.include?(command.to_sym)
|
|
96
|
+
end
|
|
97
|
+
|
|
99
98
|
# all top-level commands
|
|
100
99
|
def all_commands
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
commands
|
|
105
|
-
commands.reject { |c| c =~ /:help$/ }
|
|
100
|
+
commands = @command_class.all_commands.reject do |k,v|
|
|
101
|
+
v.is_a?(Thor::HiddenCommand)
|
|
102
|
+
end
|
|
103
|
+
commands.keys
|
|
106
104
|
end
|
|
107
105
|
|
|
108
|
-
def
|
|
109
|
-
method_params = command_class.instance_method(
|
|
106
|
+
def params_completion
|
|
107
|
+
method_params = @command_class.instance_method(@current_command).parameters
|
|
110
108
|
# Example:
|
|
111
109
|
# >> Sub.instance_method(:goodbye).parameters
|
|
112
110
|
# => [[:req, :name]]
|
|
@@ -118,21 +116,24 @@ module <%= project_class_name %>
|
|
|
118
116
|
method_params[offset..-1].first
|
|
119
117
|
end
|
|
120
118
|
|
|
121
|
-
def
|
|
119
|
+
def options_completion
|
|
122
120
|
used = ARGV.select { |a| a.include?('--') } # so we can remove used options
|
|
123
121
|
|
|
124
|
-
method_options = command_class.all_commands[
|
|
125
|
-
class_options = command_class.class_options.keys
|
|
122
|
+
method_options = @command_class.all_commands[@current_command].options.keys
|
|
123
|
+
class_options = @command_class.class_options.keys
|
|
126
124
|
|
|
127
|
-
all_options = method_options + class_options
|
|
125
|
+
all_options = method_options + class_options + ['help']
|
|
128
126
|
|
|
129
|
-
all_options.map! { |o| "--#{o.to_s.
|
|
127
|
+
all_options.map! { |o| "--#{o.to_s.gsub('_','-')}" }
|
|
130
128
|
filtered_options = all_options - used
|
|
131
|
-
filtered_options
|
|
129
|
+
filtered_options.uniq
|
|
132
130
|
end
|
|
133
131
|
|
|
134
|
-
|
|
135
|
-
|
|
132
|
+
# Useful for debugging. Using puts messes up completion.
|
|
133
|
+
def log(msg)
|
|
134
|
+
File.open("/tmp/complete.log", "a") do |file|
|
|
135
|
+
file.puts(msg)
|
|
136
|
+
end
|
|
136
137
|
end
|
|
137
138
|
end
|
|
138
139
|
end
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
_<%= project_name %>() {
|
|
2
2
|
COMPREPLY=()
|
|
3
3
|
local word="${COMP_WORDS[COMP_CWORD]}"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
else
|
|
9
|
-
local words=("${COMP_WORDS[@]}")
|
|
10
|
-
unset words[0]
|
|
11
|
-
local completions=$(<%= project_name %> completions ${words[@]})
|
|
12
|
-
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
|
|
13
|
-
fi
|
|
4
|
+
local words=("${COMP_WORDS[@]}")
|
|
5
|
+
unset words[0]
|
|
6
|
+
local completion=$(<%= project_name %> completion ${words[@]})
|
|
7
|
+
COMPREPLY=( $(compgen -W "$completion" -- "$word") )
|
|
14
8
|
}
|
|
15
9
|
|
|
16
10
|
complete -F _<%= project_name %> <%= project_name %>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module <%= project_class_name %>
|
|
2
|
+
class Completion < Command
|
|
3
|
+
desc "script", "generates script that can be eval to setup auto-completion"
|
|
4
|
+
long_desc Help.text("completion:script")
|
|
5
|
+
def script
|
|
6
|
+
Completer::Script.generate
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
desc "completions *PARAMS", "prints words for auto-completion"
|
|
10
|
+
long_desc Help.text("completion:list")
|
|
11
|
+
def list(*params)
|
|
12
|
+
Completer.new(*params).run
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Example:
|
|
2
|
+
|
|
3
|
+
<%= project_name %> completion
|
|
4
|
+
|
|
5
|
+
Prints words for TAB auto-completion.
|
|
6
|
+
|
|
7
|
+
Examples:
|
|
8
|
+
|
|
9
|
+
<%= project_name %> completion
|
|
10
|
+
<%= project_name %> completion hello
|
|
11
|
+
<%= project_name %> completion hello name
|
|
12
|
+
|
|
13
|
+
To enable, TAB auto-completion add the following to your profile:
|
|
14
|
+
|
|
15
|
+
eval $(<%= project_name %> completion script)
|
|
16
|
+
|
|
17
|
+
Auto-completion example usage:
|
|
18
|
+
|
|
19
|
+
<%= project_name %> [TAB]
|
|
20
|
+
<%= project_name %> hello [TAB]
|
|
21
|
+
<%= project_name %> hello name [TAB]
|
|
22
|
+
<%= project_name %> hello name --[TAB]
|
|
@@ -12,26 +12,27 @@ describe <%= project_class_name %>::CLI do
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it "goodbye" do
|
|
15
|
-
out = execute("exe/<%= project_name %> sub
|
|
15
|
+
out = execute("exe/<%= project_name %> sub goodbye world #{@args}")
|
|
16
16
|
expect(out).to include("from: Tung\nGoodbye world")
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
19
|
+
commands = {
|
|
20
|
+
"hell" => "hello",
|
|
21
|
+
"hello" => "name",
|
|
22
|
+
"hello -" => "--from",
|
|
23
|
+
"hello name" => "--from",
|
|
24
|
+
"hello name --" => "--from",
|
|
25
|
+
"sub goodb" => "goodbye",
|
|
26
|
+
"sub goodbye" => "name",
|
|
27
|
+
"sub goodbye name" => "--from",
|
|
28
|
+
"sub goodbye name --" => "--from",
|
|
29
|
+
"sub goodbye name --from" => "--help",
|
|
30
|
+
}
|
|
31
|
+
commands.each do |command, expected_word|
|
|
32
|
+
it "completion #{command}" do
|
|
33
|
+
out = execute("exe/<%= project_name %> completion #{command}")
|
|
34
|
+
expect(out).to include(expected_word) # only checking for one word for simplicity
|
|
35
|
+
end
|
|
35
36
|
end
|
|
36
37
|
end
|
|
37
38
|
end
|
data/spec/lib/cli_spec.rb
CHANGED
|
@@ -12,49 +12,60 @@ require 'spec_helper'
|
|
|
12
12
|
#
|
|
13
13
|
# Because it shells out tests take about 20 seconds to run this spec file.
|
|
14
14
|
describe CliTemplate::CLI do
|
|
15
|
-
before(:
|
|
16
|
-
|
|
15
|
+
before(:each) do
|
|
16
|
+
FileUtils.rm_rf("tmp")
|
|
17
|
+
FileUtils.mkdir("tmp")
|
|
17
18
|
end
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
out = execute("cd tmp && ../exe/cli-template new hello #{@args}")
|
|
23
|
-
expect(out).to include("Creating new project called hello")
|
|
24
|
-
expect(out).to include("You have successfully created a CLI project")
|
|
25
|
-
out = execute("cd tmp/hello && rake")
|
|
26
|
-
expect(out).to include("0 failures")
|
|
27
|
-
end
|
|
28
|
-
end
|
|
20
|
+
def create_new(name)
|
|
21
|
+
execute("cd tmp && ../exe/cli-template new #{name}")
|
|
22
|
+
end
|
|
29
23
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
24
|
+
templates = %w[default colon_namespaces]
|
|
25
|
+
templates.each do |template|
|
|
26
|
+
ENV['TEMPLATE'] = template
|
|
27
|
+
context("template #{template}") do
|
|
28
|
+
describe "cli-template new" do
|
|
29
|
+
context("simple single name") do
|
|
30
|
+
it "should generate new" do
|
|
31
|
+
out = create_new("hello")
|
|
32
|
+
expect(out).to include("Creating new project called hello")
|
|
33
|
+
expect(out).to include("You have successfully created a CLI project")
|
|
34
|
+
out = execute("cd tmp/hello && rake")
|
|
35
|
+
expect(out).to include("0 failures")
|
|
36
|
+
end
|
|
37
|
+
end
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
context("underscored name") do
|
|
40
|
+
it "should generate my_cli" do
|
|
41
|
+
out = create_new("my_cli")
|
|
42
|
+
expect(out).to include("Creating new project called my_cli")
|
|
43
|
+
expect(out).to include("You have successfully created a CLI project")
|
|
44
|
+
out = execute("cd tmp/my_cli && rake")
|
|
45
|
+
expect(out).to include("0 failures")
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
context("dasherized name") do
|
|
50
|
+
it "should generate my-cli" do
|
|
51
|
+
out = create_new("my-cli")
|
|
52
|
+
expect(out).to include("Creating new project called my-cli")
|
|
53
|
+
expect(out).to include("You have successfully created a CLI project")
|
|
54
|
+
out = execute("cd tmp/my-cli && rake")
|
|
55
|
+
expect(out).to include("0 failures")
|
|
56
|
+
end
|
|
57
|
+
end
|
|
49
58
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
# CamelCase is ugly :(
|
|
60
|
+
context("simple CamelCase name") do
|
|
61
|
+
it "should generate MyCli" do
|
|
62
|
+
out = create_new("MyCli")
|
|
63
|
+
expect(out).to include("Creating new project called MyCli")
|
|
64
|
+
expect(out).to include("You have successfully created a CLI project")
|
|
65
|
+
out = execute("cd tmp/MyCli && rake")
|
|
66
|
+
expect(out).to include("0 failures")
|
|
67
|
+
end
|
|
68
|
+
end
|
|
58
69
|
end
|
|
59
70
|
end
|
|
60
71
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cli-template
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tung Nguyen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-02-
|
|
11
|
+
date: 2018-02-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -164,10 +164,40 @@ files:
|
|
|
164
164
|
- lib/cli-template/new.rb
|
|
165
165
|
- lib/cli-template/sequence.rb
|
|
166
166
|
- lib/cli-template/version.rb
|
|
167
|
+
- lib/templates/colon_namespaces/%project_name%.gemspec.tt
|
|
168
|
+
- lib/templates/colon_namespaces/.gitignore
|
|
169
|
+
- lib/templates/colon_namespaces/.rspec
|
|
170
|
+
- lib/templates/colon_namespaces/CHANGELOG.md
|
|
171
|
+
- lib/templates/colon_namespaces/Gemfile.tt
|
|
172
|
+
- lib/templates/colon_namespaces/Guardfile
|
|
173
|
+
- lib/templates/colon_namespaces/LICENSE.txt.tt
|
|
174
|
+
- lib/templates/colon_namespaces/README.md.tt
|
|
175
|
+
- lib/templates/colon_namespaces/Rakefile
|
|
176
|
+
- lib/templates/colon_namespaces/exe/%project_name%.tt
|
|
177
|
+
- lib/templates/colon_namespaces/lib/%project_name%.rb.tt
|
|
178
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/cli.rb.tt
|
|
179
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/command.rb.tt
|
|
180
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/completer.rb.tt
|
|
181
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/completer/script.rb.tt
|
|
182
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/completer/script.sh.tt
|
|
183
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/completions.rb.tt
|
|
184
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/help.rb.tt
|
|
185
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/help/completions.md.tt
|
|
186
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/help/completions/script.md.tt
|
|
187
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/help/hello.md.tt
|
|
188
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/help/main.md.tt
|
|
189
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/help/sub/goodbye.md.tt
|
|
190
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/main.rb.tt
|
|
191
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/rake_command.rb.tt
|
|
192
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/sub.rb.tt
|
|
193
|
+
- lib/templates/colon_namespaces/lib/%underscored_name%/version.rb.tt
|
|
194
|
+
- lib/templates/colon_namespaces/spec/lib/cli_spec.rb.tt
|
|
195
|
+
- lib/templates/colon_namespaces/spec/spec_helper.rb.tt
|
|
167
196
|
- lib/templates/default/%project_name%.gemspec.tt
|
|
168
197
|
- lib/templates/default/.gitignore
|
|
169
198
|
- lib/templates/default/.rspec
|
|
170
199
|
- lib/templates/default/CHANGELOG.md
|
|
200
|
+
- lib/templates/default/Gemfile.lock.tt
|
|
171
201
|
- lib/templates/default/Gemfile.tt
|
|
172
202
|
- lib/templates/default/Guardfile
|
|
173
203
|
- lib/templates/default/LICENSE.txt
|
|
@@ -180,14 +210,12 @@ files:
|
|
|
180
210
|
- lib/templates/default/lib/%underscored_name%/completer.rb.tt
|
|
181
211
|
- lib/templates/default/lib/%underscored_name%/completer/script.rb.tt
|
|
182
212
|
- lib/templates/default/lib/%underscored_name%/completer/script.sh.tt
|
|
183
|
-
- lib/templates/default/lib/%underscored_name%/
|
|
213
|
+
- lib/templates/default/lib/%underscored_name%/completion.rb.tt
|
|
184
214
|
- lib/templates/default/lib/%underscored_name%/help.rb.tt
|
|
185
|
-
- lib/templates/default/lib/%underscored_name%/help/
|
|
186
|
-
- lib/templates/default/lib/%underscored_name%/help/
|
|
215
|
+
- lib/templates/default/lib/%underscored_name%/help/completion.md.tt
|
|
216
|
+
- lib/templates/default/lib/%underscored_name%/help/completion_script.md.tt
|
|
187
217
|
- lib/templates/default/lib/%underscored_name%/help/hello.md.tt
|
|
188
218
|
- lib/templates/default/lib/%underscored_name%/help/sub/goodbye.md.tt
|
|
189
|
-
- lib/templates/default/lib/%underscored_name%/main.rb.tt
|
|
190
|
-
- lib/templates/default/lib/%underscored_name%/rake_command.rb.tt
|
|
191
219
|
- lib/templates/default/lib/%underscored_name%/sub.rb.tt
|
|
192
220
|
- lib/templates/default/lib/%underscored_name%/version.rb.tt
|
|
193
221
|
- lib/templates/default/spec/lib/cli_spec.rb.tt
|