gli 2.9.0 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d1fffe3ab7b8b3aa4881cfb38de3b7cc1e31508b
4
- data.tar.gz: 057ab9061b13527ed56f448cc20ee3ea54a7472d
3
+ metadata.gz: bc8b2ac1abb69495f8096899fbb4da56b2e85d32
4
+ data.tar.gz: ce4f47438626b06fbd4fcf4b714a5257b63a2ec5
5
5
  SHA512:
6
- metadata.gz: c61409e0f16a9d07d9e4f704e05890e48868dc359be530dd2c094d3856a841b224968c1f2902b761355ad3ff2574ab8e9a33af626ceb77e897e3a2dfa17a3580
7
- data.tar.gz: 3f26ab6c6026483c986241c506fdf1742a43408eac52605aa7ba2c5a36076f1d48acba70fbba5031b649fc042043d2cdf112ebc175cf9afeb35b49821fd15979
6
+ metadata.gz: 1d9e77187528594f30d47c0dca4cdef47a1dc01fbc35657e0bfec3441a20b1d37d87dccecc4015957bf78c1055ff4ce9a0cb0b728b1e97305b6c8936ba82f2c2
7
+ data.tar.gz: 81eb28d1e7b564fed156a69fa0159bd4236bffec82d51bf1c5874c6d6a521eb8f24ce1ee3f156ff9445a504311b9deb83deb059ab27120c079b04e8578b286cf
data/README.rdoc CHANGED
@@ -3,7 +3,7 @@
3
3
  GLI is the best way to make a "command-suite" command-line application, e.g. one like <tt>git</tt> (for the best way to make a
4
4
  simpler command-line application, check out methadone[http://www.github.com/davetron5000/methadone]).
5
5
 
6
- GLI allows you to make a very polished, easy-to-maintain command-line application without a lot
6
+ GLI allows you to make a polished, easy-to-maintain command-line application without a lot
7
7
  of syntax, but without restricting you in any way from the power of +OptionParser+.
8
8
 
9
9
  * {Overview}[http://davetron5000.github.com/gli]
@@ -79,6 +79,7 @@ Known to work on
79
79
  * 1.9.2
80
80
  * 1.9.3
81
81
  * 2.0.0
82
+ * 2.1.0
82
83
  * Ruby Enterprise Edition 1.8.7
83
84
  * Rubinius 1.0.1
84
85
  * JRuby 1.6.4
@@ -18,6 +18,10 @@ Given /^the todo app is coded to wrap text only for tty$/ do
18
18
  ENV['TODO_WRAP_HELP_TEXT'] = 'tty_only'
19
19
  end
20
20
 
21
+ Given /^the todo app is coded to hide commands without description$/ do
22
+ ENV['HIDE_COMMANDS_WITHOUT_DESC'] = 'true'
23
+ end
24
+
21
25
  Given /^a clean home directory$/ do
22
26
  FileUtils.rm_rf File.join(ENV['HOME'],'gli_test_todo.rc')
23
27
  end
@@ -38,6 +38,7 @@ After do |scenario|
38
38
  ENV['HOME'] = @original_home
39
39
  ENV['TODO_SORT_HELP'] = nil
40
40
  ENV['TODO_WRAP_HELP_TEXT'] = nil
41
+ ENV['HIDE_COMMANDS_WITHOUT_DESC'] = nil
41
42
  FileUtils.mv 'gli.rdoc.orig','gli.rdoc'
42
43
  end
43
44
 
@@ -144,6 +144,38 @@ Feature: The todo app has a nice user interface
144
144
  chained2, ch2 -
145
145
  """
146
146
 
147
+ Scenario: Getting Help with commands without description hidden
148
+ Given the todo app is coded to hide commands without description
149
+ When I successfully run `todo help`
150
+ Then the output should contain:
151
+ """
152
+ NAME
153
+ todo - Manages tasks
154
+
155
+ A test program that has a sophisticated UI that can be used to exercise a
156
+ lot of GLI's power
157
+
158
+ SYNOPSIS
159
+ todo [global options] command [command options] [arguments...]
160
+
161
+ VERSION
162
+ 0.0.1
163
+
164
+ GLOBAL OPTIONS
165
+ --flag=arg - (default: none)
166
+ --help - Show this message
167
+ --[no-]otherswitch -
168
+ --[no-]switch -
169
+ --version - Display the program version
170
+
171
+ COMMANDS
172
+ create, new - Create a new task or context
173
+ help - Shows a list of commands or help for one command
174
+ initconfig - Initialize the config file using current global options
175
+ list - List things, such as tasks or contexts
176
+ ls - LS things, such as tasks or contexts
177
+ """
178
+
147
179
  Scenario Outline: Getting Help for a top level command of todo
148
180
  When I successfully run `todo <help_invocation>`
149
181
  Then the output should contain:
data/lib/gli/app.rb CHANGED
@@ -62,6 +62,17 @@ module GLI
62
62
  @program_long_desc
63
63
  end
64
64
 
65
+ # Provide a flag to choose whether to hide or not from the help the undescribed commands.
66
+ # By default the undescribed commands will be shown in the help.
67
+ #
68
+ # hide:: A Bool for hide the undescribed commands
69
+ def hide_commands_without_desc(hide=nil)
70
+ unless hide.nil?
71
+ @hide_commands_without_desc = hide
72
+ end
73
+ @hide_commands_without_desc || false
74
+ end
75
+
65
76
  # Use this if the following command should not have the pre block executed.
66
77
  # By default, the pre block is executed before each command and can result in
67
78
  # aborting the call. Using this will avoid that behavior for the following command
data/lib/gli/command.rb CHANGED
@@ -44,6 +44,7 @@ module GLI
44
44
  # +skips_pre+:: if true, this command advertises that it doesn't want the pre block called first
45
45
  # +skips_post+:: if true, this command advertises that it doesn't want the post block called after it
46
46
  # +skips_around+:: if true, this command advertises that it doesn't want the around block called
47
+ # +hide_commands_without_desc+:: if true and there isn't a description the command is not going to be shown in the help
47
48
  def initialize(options)
48
49
  super(options[:names],options[:description],options[:long_desc])
49
50
  @arguments_description = options[:arguments_name] || ''
@@ -51,6 +52,7 @@ module GLI
51
52
  @skips_pre = options[:skips_pre]
52
53
  @skips_post = options[:skips_post]
53
54
  @skips_around = options[:skips_around]
55
+ @hide_commands_without_desc = options[:hide_commands_without_desc]
54
56
  @commands_declaration_order = []
55
57
  @flags_declaration_order = []
56
58
  @switches_declaration_order = []
@@ -11,8 +11,9 @@ module GLI
11
11
  end
12
12
 
13
13
  # Return true to avoid including this command in your help strings
14
+ # Will honor the hide_commands_without_desc flag
14
15
  def nodoc
15
- false
16
+ @hide_commands_without_desc and description.nil?
16
17
  end
17
18
 
18
19
  # Return the arguments description
data/lib/gli/dsl.rb CHANGED
@@ -53,7 +53,7 @@ module GLI
53
53
  # +:long_desc+:: the long_description, instead of using #long_desc
54
54
  # +:default_value+:: the default value, instead of using #default_value
55
55
  # +:arg_name+:: the arg name, instead of using #arg_name
56
- # +:must_match+:: A regexp that the flag's value must match
56
+ # +:must_match+:: A regexp that the flag's value must match or an array of allowable values
57
57
  # +:type+:: A Class (or object you passed to GLI::App#accept) to trigger type coversion
58
58
  #
59
59
  # Example:
@@ -156,6 +156,7 @@ module GLI
156
156
  :skips_pre => @skips_pre,
157
157
  :skips_post => @skips_post,
158
158
  :skips_around => @skips_around,
159
+ :hide_commands_without_desc => @hide_commands_without_desc,
159
160
  }
160
161
  @commands_declaration_order ||= []
161
162
  if names.first.kind_of? Hash
data/lib/gli/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module GLI
2
2
  unless const_defined? :VERSION
3
- VERSION = '2.9.0'
3
+ VERSION = '2.10.0'
4
4
  end
5
5
  end
@@ -17,6 +17,7 @@ end
17
17
  sort_help (ENV['TODO_SORT_HELP'] || 'alpha').to_sym
18
18
  wrap_help_text (ENV['TODO_WRAP_HELP_TEXT'] || 'to_terminal').to_sym
19
19
  synopsis_format (ENV['SYNOPSES'] || 'full').to_sym
20
+ hide_commands_without_desc ENV['HIDE_COMMANDS_WITHOUT_DESC'] === 'true'
20
21
 
21
22
  subcommand_option_handling :normal
22
23
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Copeland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-19 00:00:00.000000000 Z
11
+ date: 2014-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake