commander 4.3.3 → 4.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.rdoc +5 -0
- data/lib/commander/help_formatters.rb +36 -0
- data/lib/commander/help_formatters/terminal.rb +2 -2
- data/lib/commander/help_formatters/terminal/help.erb +0 -7
- data/lib/commander/help_formatters/terminal_compact/help.erb +0 -2
- data/lib/commander/version.rb +1 -1
- data/spec/help_formatters/terminal_compact_spec.rb +69 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72ee1a4d6498d366df2896b19afd77d57a2fe2e5
|
4
|
+
data.tar.gz: 0c3c85152bcd33462c1f2e399c05badd4bb62b63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c3d14e701cfe6e057f0f002aad28ffbf1d1b91ad2fa4f7a320326e161c079d5001c670b938a55090fc76a510a94e1f48b1a7474e760588d5ed8fee5223a9a41
|
7
|
+
data.tar.gz: 1ee04c92a9502fc7c0f970a52705746fc657fd9833b694b67246ce036356ac3cd9698a938b535c392c11e2939a5e177a3a99196b18d194ed6f0a0d715a599ee7
|
data/History.rdoc
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
=== 4.3.4 / 2015-05-03
|
2
|
+
|
3
|
+
* Fixed a regression with the compact help formatter.
|
4
|
+
|
1
5
|
=== 4.3.3 / 2015-04-21
|
2
6
|
|
3
7
|
* Updated to highline 1.7.2 to fix a regression with terminal size (https://github.com/JEG2/highline/pull/139).
|
8
|
+
* Help formatting updated to look better for commands with long names. (@jszwedko)
|
4
9
|
|
5
10
|
=== 4.3.2 / 2015-03-31
|
6
11
|
|
@@ -4,6 +4,42 @@ module Commander
|
|
4
4
|
autoload :Terminal, 'commander/help_formatters/terminal'
|
5
5
|
autoload :TerminalCompact, 'commander/help_formatters/terminal_compact'
|
6
6
|
|
7
|
+
class Context
|
8
|
+
def initialize(target)
|
9
|
+
@target = target
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_binding
|
13
|
+
@target.instance_eval { binding }.tap do |bind|
|
14
|
+
decorate_binding(bind)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# No-op, override in subclasses.
|
19
|
+
def decorate_binding(_bind)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class ProgramContext < Context
|
24
|
+
def decorate_binding(bind)
|
25
|
+
bind.eval("max_command_length = #{max_command_length(bind)}")
|
26
|
+
bind.eval("max_aliases_length = #{max_aliases_length(bind)}")
|
27
|
+
end
|
28
|
+
|
29
|
+
def max_command_length(bind)
|
30
|
+
max_key_length(bind.eval('@commands'))
|
31
|
+
end
|
32
|
+
|
33
|
+
def max_aliases_length(bind)
|
34
|
+
max_key_length(bind.eval('@aliases'))
|
35
|
+
end
|
36
|
+
|
37
|
+
def max_key_length(hash, default = 20)
|
38
|
+
longest = hash.keys.max_by(&:size)
|
39
|
+
longest ? longest.size : default
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
7
43
|
module_function
|
8
44
|
|
9
45
|
def indent(amount, text)
|
@@ -4,11 +4,11 @@ module Commander
|
|
4
4
|
module HelpFormatter
|
5
5
|
class Terminal < Base
|
6
6
|
def render
|
7
|
-
template(:help).result
|
7
|
+
template(:help).result(ProgramContext.new(@runner).get_binding)
|
8
8
|
end
|
9
9
|
|
10
10
|
def render_command(command)
|
11
|
-
template(:command_help).result
|
11
|
+
template(:command_help).result(Context.new(command).get_binding)
|
12
12
|
end
|
13
13
|
|
14
14
|
def template(name)
|
@@ -1,10 +1,3 @@
|
|
1
|
-
<%
|
2
|
-
# TODO: move into formatter?
|
3
|
-
longest_command = @commands.keys.max_by(&:size)
|
4
|
-
max_command_length = longest_command ? longest_command.size : 20
|
5
|
-
longest_alias = @aliases.keys.max_by(&:size)
|
6
|
-
max_aliases_length = longest_alias ? longest_alias.size : 20
|
7
|
-
%>
|
8
1
|
<%= $terminal.color "NAME", :bold %>:
|
9
2
|
|
10
3
|
<%= program :name %>
|
data/lib/commander/version.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Commander::HelpFormatter::TerminalCompact do
|
4
|
+
include Commander::Methods
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
mock_terminal
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'global help' do
|
11
|
+
before :each do
|
12
|
+
new_command_runner 'help' do
|
13
|
+
program :help_formatter, :compact
|
14
|
+
command :'install gem' do |c|
|
15
|
+
c.syntax = 'foo install gem [options]'
|
16
|
+
c.summary = 'Install some gem'
|
17
|
+
end
|
18
|
+
end.run!
|
19
|
+
@global_help = @output.string
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'should display' do
|
23
|
+
it 'the command name' do
|
24
|
+
expect(@global_help).to include('install gem')
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'the summary' do
|
28
|
+
expect(@global_help).to include('Install some gem')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe 'command help' do
|
34
|
+
before :each do
|
35
|
+
new_command_runner 'help', 'install', 'gem' do
|
36
|
+
program :help_formatter, :compact
|
37
|
+
command :'install gem' do |c|
|
38
|
+
c.syntax = 'foo install gem [options]'
|
39
|
+
c.summary = 'Install some gem'
|
40
|
+
c.description = 'Install some gem, blah blah blah'
|
41
|
+
c.example 'one', 'two'
|
42
|
+
c.example 'three', 'four'
|
43
|
+
end
|
44
|
+
end.run!
|
45
|
+
@command_help = @output.string
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'should display' do
|
49
|
+
it 'the command name' do
|
50
|
+
expect(@command_help).to include('install gem')
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'the description' do
|
54
|
+
expect(@command_help).to include('Install some gem, blah blah blah')
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'all examples' do
|
58
|
+
expect(@command_help).to include('# one')
|
59
|
+
expect(@command_help).to include('two')
|
60
|
+
expect(@command_help).to include('# three')
|
61
|
+
expect(@command_help).to include('four')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'the syntax' do
|
65
|
+
expect(@command_help).to include('foo install gem [options]')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.3.
|
4
|
+
version: 4.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04
|
12
|
+
date: 2015-05-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: highline
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- spec/configure_spec.rb
|
132
132
|
- spec/core_ext/array_spec.rb
|
133
133
|
- spec/core_ext/object_spec.rb
|
134
|
+
- spec/help_formatters/terminal_compact_spec.rb
|
134
135
|
- spec/help_formatters/terminal_spec.rb
|
135
136
|
- spec/methods_spec.rb
|
136
137
|
- spec/runner_spec.rb
|
@@ -165,6 +166,7 @@ test_files:
|
|
165
166
|
- spec/configure_spec.rb
|
166
167
|
- spec/core_ext/array_spec.rb
|
167
168
|
- spec/core_ext/object_spec.rb
|
169
|
+
- spec/help_formatters/terminal_compact_spec.rb
|
168
170
|
- spec/help_formatters/terminal_spec.rb
|
169
171
|
- spec/methods_spec.rb
|
170
172
|
- spec/runner_spec.rb
|