gli 1.2.6 → 1.3.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.
@@ -34,8 +34,11 @@ Known to work on
34
34
 
35
35
  * 1.8.7
36
36
  * 1.9.2
37
+ * Ruby Enterprise Edition 1.8.7
38
+ * Rubinius 1.0.1
39
+ * JRuby 1.5.2
37
40
 
38
- Though likely works on various other versions.
41
+ If you're interested in other versions of Ruby, let me know, and I'll add them to my test suite
39
42
 
40
43
  == Documentation
41
44
 
data/bin/gli CHANGED
@@ -19,6 +19,8 @@ require 'gli_version'
19
19
 
20
20
  include GLI
21
21
 
22
+ program_desc 'gli allows you to create the scaffolding for a GLI-powered application'
23
+
22
24
  version GLI::VERSION
23
25
  desc 'Be verbose'
24
26
  switch :v
@@ -67,4 +69,4 @@ post do |global,command,options,args|
67
69
  puts "Executed #{command.name}" if global[:v]
68
70
  end
69
71
 
70
- run(ARGV)
72
+ exit run(ARGV)
data/gli.rdoc CHANGED
@@ -1,5 +1,6 @@
1
1
  = <tt>gli</tt>
2
2
 
3
+ gli allows you to create the scaffolding for a GLI-powered application
3
4
  gli [global options] command_name [command-specific options] [--] arguments...
4
5
 
5
6
  * Use the command +help+ to get a summary of commands
data/lib/gli.rb CHANGED
@@ -1,9 +1,10 @@
1
- require 'gli/command_line_token.rb'
2
1
  require 'gli/command.rb'
3
- require 'gli/switch.rb'
2
+ require 'gli/command_line_token.rb'
3
+ require 'gli/copy_options_to_aliases.rb'
4
+ require 'gli/exceptions.rb'
4
5
  require 'gli/flag.rb'
5
6
  require 'gli/options.rb'
6
- require 'gli/exceptions.rb'
7
+ require 'gli/switch.rb'
7
8
  require 'gli_version.rb'
8
9
  require 'support/help.rb'
9
10
  require 'support/rdoc.rb'
@@ -15,6 +16,7 @@ require 'etc'
15
16
  # specific options, and then command arguments.
16
17
  module GLI
17
18
  extend self
19
+ include CopyOptionsToAliases
18
20
 
19
21
  @@program_name = $0.split(/\//)[-1]
20
22
  @@post_block = nil
@@ -24,6 +26,9 @@ module GLI
24
26
  @@use_openstruct = false
25
27
  @@version = nil
26
28
  @@stderr = $stderr
29
+ @@program_desc = nil
30
+ @@skips_pre = false
31
+ @@skips_post = false
27
32
 
28
33
  # Override the device of stderr; exposed only for testing
29
34
  def error_device=(e) #:nodoc:
@@ -38,6 +43,7 @@ module GLI
38
43
  @@version = nil
39
44
  @@config_file = nil
40
45
  @@use_openstruct = false
46
+ @@prog_desc = nil
41
47
  clear_nexts
42
48
  end
43
49
 
@@ -47,6 +53,31 @@ module GLI
47
53
  # +description+:: A String of the short descripiton of the switch, flag, or command following
48
54
  def desc(description); @@next_desc = description; end
49
55
 
56
+ # Describe the overall application/programm. This should be a one-sentence summary
57
+ # of what your program does that will appear in the help output.
58
+ #
59
+ # +description+:: A String of the short description of your program's purpose
60
+ def program_desc(description=nil)
61
+ if description
62
+ @@program_desc = description
63
+ end
64
+ @@program_desc
65
+ end
66
+
67
+ # Use this if the following command should not have the pre block executed.
68
+ # By default, the pre block is executed before each command and can result in
69
+ # aborting the call. Using this will avoid that behavior for the following command
70
+ def skips_pre
71
+ @@skips_pre = true
72
+ end
73
+
74
+ # Use this if the following command should not have the post block executed.
75
+ # By default, the post block is executed after each command.
76
+ # Using this will avoid that behavior for the following command
77
+ def skips_post
78
+ @@skips_post = true
79
+ end
80
+
50
81
  # Provide a longer, more detailed description. This
51
82
  # will be reformatted and wrapped to fit in the terminal's columns
52
83
  #
@@ -127,7 +158,7 @@ module GLI
127
158
  # +names+:: a String or Symbol, or an Array of String or Symbol that represent all the different names and aliases for this command.
128
159
  #
129
160
  def command(*names)
130
- command = Command.new([names].flatten,@@next_desc,@@next_arg_name,@@next_long_desc)
161
+ command = Command.new([names].flatten,@@next_desc,@@next_arg_name,@@next_long_desc,@@skips_pre,@@skips_post)
131
162
  commands[command.name] = command
132
163
  yield command
133
164
  clear_nexts
@@ -193,26 +224,28 @@ module GLI
193
224
  exit_code = 0
194
225
  begin
195
226
  config = parse_config
196
- global_options,command,options,arguments = parse_options(args,config)
227
+ override_defaults_based_on_config(config)
228
+ global_options,command,options,arguments = parse_options(args)
197
229
  copy_options_to_aliased_versions(global_options,command,options)
198
230
  global_options = convert_to_openstruct?(global_options)
199
231
  options = convert_to_openstruct?(options)
200
232
  if proceed?(global_options,command,options,arguments)
201
233
  command = commands[:help] if !command
202
234
  command.execute(global_options,options,arguments)
203
- @@post_block.call(global_options,command,options,arguments) if @@post_block
235
+ if !command.skips_post && @@post_block
236
+ @@post_block.call(global_options,command,options,arguments)
237
+ end
204
238
  end
205
239
  rescue Exception => ex
206
240
 
207
241
  @@stderr.puts error_message(ex) if regular_error_handling?(ex)
208
242
 
209
- raise ex if ENV['GLI_DEBUG'] == 'true'
210
-
211
243
  exit_code = if ex.respond_to? :exit_code
212
244
  ex.exit_code
213
245
  else
214
246
  -2
215
247
  end
248
+ raise ex if ENV['GLI_DEBUG'] == 'true'
216
249
  end
217
250
  exit_code
218
251
  end
@@ -220,7 +253,9 @@ module GLI
220
253
  # True if we should proceed with executing the command; this calls
221
254
  # the pre block if it's defined
222
255
  def proceed?(global_options,command,options,arguments) #:nodoc:
223
- if @@pre_block
256
+ if command && command.skips_pre
257
+ true
258
+ elsif @@pre_block
224
259
  @@pre_block.call(global_options,command,options,arguments)
225
260
  else
226
261
  true
@@ -288,36 +323,15 @@ module GLI
288
323
  # For example, if a flag works with either -f or --flag, this will copy the value from [:f] to [:flag]
289
324
  # to allow the user to access the options by any alias
290
325
  def copy_options_to_aliased_versions(global_options,command,options) # :nodoc:
291
- copy_options_to_aliases(global_options,self)
292
- copy_options_to_aliases(options,command)
293
- end
294
-
295
- # For each option in options, copies its value to keys for the aliases of the flags or
296
- # switches in gli_like
297
- #
298
- # options - Hash of options parsed from command line; this is an I/O param
299
- # gli_like - Object resonding to flags and switches in the same way that GLI or a Command instance do
300
- def copy_options_to_aliases(options,gli_like) # :nodoc:
301
- new_options = {}
302
- options.each do |key,value|
303
- if gli_like.flags[key] && gli_like.flags[key].aliases
304
- gli_like.flags[key].aliases.each do |alias_name|
305
- new_options[alias_name] = value
306
- end
307
- elsif gli_like.switches[key] && gli_like.switches[key].aliases
308
- gli_like.switches[key].aliases.each do |alias_name|
309
- new_options[alias_name] = value
310
- end
311
- end
312
- end
313
- options.merge!(new_options)
326
+ copy_options_to_aliases(global_options)
327
+ command.copy_options_to_aliases(options)
314
328
  end
315
329
 
316
330
  def parse_config # :nodoc:
317
331
  return nil if @@config_file.nil?
318
332
  require 'yaml'
319
333
  if File.exist?(@@config_file)
320
- File.open(@@config_file) { |f| YAML::load(f) }
334
+ File.open(@@config_file) { |file| YAML::load(file) }
321
335
  else
322
336
  {}
323
337
  end
@@ -328,14 +342,8 @@ module GLI
328
342
  # * Command
329
343
  # * command options (as a Hash)
330
344
  # * arguments (as an Array)
331
- def parse_options(args,config=nil) # :nodoc:
332
- command_configs = {}
333
- if config.nil?
334
- config = {}
335
- else
336
- command_configs = config.delete(GLI::InitConfig::COMMANDS_KEY) if !config.nil?
337
- end
338
- global_options,command,options,arguments = parse_options_helper(args.clone,config,nil,Hash.new,Array.new,command_configs)
345
+ def parse_options(args) # :nodoc:
346
+ global_options,command,options,arguments = parse_options_helper(args.clone,Hash.new,nil,Hash.new,Array.new)
339
347
  flags.each { |name,flag| global_options[name] = flag.default_value if !global_options[name] }
340
348
  command.flags.each { |name,flag| options[name] = flag.default_value if !options[name] }
341
349
  return [global_options,command,options,arguments]
@@ -344,11 +352,11 @@ module GLI
344
352
  # Finds the index of the first non-flag
345
353
  # argument or -1 if there wasn't one.
346
354
  def find_non_flag_index(args) # :nodoc:
347
- args.each_index do |i|
348
- return i if args[i] =~ /^[^\-]/;
349
- return i-1 if args[i] =~ /^\-\-$/;
355
+ args.each_with_index do |item,index|
356
+ return index if item =~ /^[^\-]/
357
+ return index-1 if item =~ /^\-\-$/
350
358
  end
351
- -1;
359
+ -1
352
360
  end
353
361
 
354
362
  def clear_nexts # :nodoc:
@@ -356,6 +364,8 @@ module GLI
356
364
  @@next_arg_name = nil
357
365
  @@next_default_value = nil
358
366
  @@next_long_desc = nil
367
+ @@skips_pre = false
368
+ @@skips_post = false
359
369
  end
360
370
 
361
371
  clear_nexts
@@ -376,7 +386,6 @@ module GLI
376
386
  # <code>command</code>:: the Command that has been identified (or nil if not identified yet)
377
387
  # <code>command_options</code>:: options for Command
378
388
  # <code>arguments</code>:: the arguments for Command
379
- # <code>command_configs</code>:: the configuration file for all commands, used as defaults
380
389
  #
381
390
  # This works by finding the first non-switch/flag argument, and taking that sublist and trying to pick out
382
391
  # flags and switches. After this is done, one of the following is true:
@@ -389,7 +398,7 @@ module GLI
389
398
  #
390
399
  # Once the command has been found, we start looking for command-specific flags and switches.
391
400
  # When those have been found, we know the rest of the argument list is arguments for the command
392
- def parse_options_helper(args,global_options,command,command_options,arguments,command_configs) # :nodoc:
401
+ def parse_options_helper(args,global_options,command,command_options,arguments) # :nodoc:
393
402
  non_flag_i = find_non_flag_index(args)
394
403
  all_flags = false
395
404
  if non_flag_i == 0
@@ -401,9 +410,8 @@ module GLI
401
410
  return parse_options_helper(args,
402
411
  global_options,
403
412
  command,
404
- default_command_options(command,command_configs),
405
- arguments,
406
- command_configs)
413
+ Hash.new,
414
+ arguments)
407
415
  else
408
416
  return global_options,command,command_options,arguments + args
409
417
  end
@@ -453,7 +461,7 @@ module GLI
453
461
  return [global_options,command,command_options,arguments] if rest.empty?
454
462
  # If we have no more options we've parsed them all
455
463
  # and rest may have more
456
- return parse_options_helper(rest,global_options,command,command_options,arguments,command_configs)
464
+ return parse_options_helper(rest,global_options,command,command_options,arguments)
457
465
  else
458
466
  if command
459
467
  check = rest
@@ -477,23 +485,17 @@ module GLI
477
485
  return parse_options_helper(rest,
478
486
  global_options,
479
487
  command,
480
- default_command_options(command,command_configs),
481
- arguments,
482
- command_configs)
488
+ Hash.new,
489
+ arguments)
483
490
  end
484
491
  end
485
492
 
486
493
  end
487
494
 
488
- def default_command_options(command,command_configs) # :nodoc:
489
- options = (command_configs && command_configs[command.name.to_sym]) || {}
490
- end
491
-
492
495
  def find_command(name) # :nodoc:
493
496
  sym = name.to_sym
494
497
  return commands[name.to_sym] if commands[sym]
495
- commands.keys.each do |command_name|
496
- command = commands[command_name]
498
+ commands.each do |command_name,command|
497
499
  return command if (command.aliases && command.aliases.include?(sym))
498
500
  end
499
501
  nil
@@ -517,4 +519,27 @@ module GLI
517
519
  end
518
520
  end
519
521
  end
522
+
523
+ # Sets the default values for flags based on the configuration
524
+ def override_defaults_based_on_config(config)
525
+ config ||= {}
526
+ config['commands'] ||= {}
527
+
528
+ override_default(flags,config)
529
+ override_default(switches,config)
530
+
531
+ commands.each do |command_name,command|
532
+ command_config = config['commands'][command_name] || {}
533
+
534
+ override_default(command.flags,command_config)
535
+ override_default(command.switches,command_config)
536
+ end
537
+ end
538
+
539
+ def override_default(tokens,config)
540
+ tokens.each do |name,token|
541
+ token.default_value=config[name] if config[name]
542
+ end
543
+ end
544
+
520
545
  end
@@ -1,4 +1,5 @@
1
1
  require 'gli/command_line_token.rb'
2
+ require 'gli/copy_options_to_aliases.rb'
2
3
 
3
4
  module GLI
4
5
  # A command to be run, in context of global flags and switches. You are given an instance of this class
@@ -6,6 +7,7 @@ module GLI
6
7
  # command-specific command-line arguments, much as you use the methods in GLI to describe the global
7
8
  # command-line interface
8
9
  class Command < CommandLineToken
10
+ include CopyOptionsToAliases
9
11
 
10
12
  # Create a new command
11
13
  #
@@ -13,9 +15,13 @@ module GLI
13
15
  # +description+:: short description of this command as a Strign
14
16
  # +arguments_name+:: description of the arguments as a String, or nil if this command doesn't take arguments
15
17
  # +long_desc+:: a longer description of the command, possibly with multiple lines and text formatting
16
- def initialize(names,description,arguments_name=nil,long_desc=nil) # :nodoc:
18
+ # +skips_pre+:: if true, this command advertises that it doesn't want the pre block called first
19
+ # +skips_post+:: if true, this command advertises that it doesn't want the post block called after it
20
+ def initialize(names,description,arguments_name=nil,long_desc=nil,skips_pre=false,skips_post=false) # :nodoc:
17
21
  super(names,description,long_desc)
18
22
  @arguments_description = arguments_name || ''
23
+ @skips_pre = skips_pre
24
+ @skips_post = skips_post
19
25
  clear_nexts
20
26
  end
21
27
 
@@ -24,6 +30,16 @@ module GLI
24
30
  @arguments_description
25
31
  end
26
32
 
33
+ # If true, this command doesn't want the pre block run before it executes
34
+ def skips_pre #:nodoc:
35
+ @skips_pre
36
+ end
37
+
38
+ # If true, this command doesn't want the post block run before it executes
39
+ def skips_post #:nodoc:
40
+ @skips_post
41
+ end
42
+
27
43
  # Return the Array of the command's names
28
44
  def names #:nodoc:
29
45
  all_forms
@@ -38,9 +38,9 @@ module GLI
38
38
  # Allow strings; convert to symbols
39
39
  names = [names].flatten.map { |name| name.to_sym }
40
40
  names_hash = Hash.new
41
- names.each do |n|
42
- raise ArgumentError.new("#{n} has spaces; they are not allowed") if n.to_s =~ /\s/
43
- names_hash[self.class.name_as_string(n)] = true
41
+ names.each do |name|
42
+ raise ArgumentError.new("#{name} has spaces; they are not allowed") if name.to_s =~ /\s/
43
+ names_hash[self.class.name_as_string(name)] = true
44
44
  end
45
45
  name = names.shift
46
46
  aliases = names.length > 0 ? names : nil
@@ -50,7 +50,7 @@ module GLI
50
50
  def all_forms_a
51
51
  forms = [self.class.name_as_string(name)]
52
52
  if aliases
53
- forms |= aliases.collect { |a| self.class.name_as_string(a) }.sort { |x,y| y.length <=> x.length }
53
+ forms |= aliases.collect { |one_alias| self.class.name_as_string(one_alias) }.sort { |one,two| two.length <=> one.length }
54
54
  end
55
55
  forms
56
56
  end
@@ -0,0 +1,33 @@
1
+ module GLI
2
+
3
+ # Mixin that both GLI and Command can use to copy command-line options to the aliased versions
4
+ # of flags and switches
5
+ #
6
+ # includers must provide the methods +flags+ and +switches+ that return an Array of Flag or Switch,
7
+ # respectively
8
+ module CopyOptionsToAliases # :nodoc:
9
+ # For each option in options, copies its value to keys for the aliases of the flags or
10
+ # switches in gli_like
11
+ #
12
+ # options - Hash of options parsed from command line; this is an I/O param
13
+ def copy_options_to_aliases(options) # :nodoc:
14
+ new_options = {}
15
+ options.each do |key,value|
16
+ if flags[key] && flags[key].aliases
17
+ copy_aliases(flags[key].aliases,new_options,value)
18
+ elsif switches[key] && switches[key].aliases
19
+ copy_aliases(switches[key].aliases,new_options,value)
20
+ end
21
+ end
22
+ options.merge!(new_options)
23
+ end
24
+
25
+ private
26
+
27
+ def copy_aliases(aliases,new_options,value)
28
+ aliases.each do |alias_name|
29
+ new_options[alias_name] = value
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,10 +1,11 @@
1
1
  require 'gli/command_line_token.rb'
2
+ require 'gli/switch.rb'
2
3
 
3
4
  module GLI
4
5
  # Defines a flag, which is to say a switch that takes an argument
5
6
  class Flag < Switch # :nodoc:
6
7
 
7
- attr_reader :default_value
8
+ attr_accessor :default_value
8
9
 
9
10
  def initialize(names,description,argument_name=nil,default=nil,long_desc=nil)
10
11
  super(names,description,long_desc)
@@ -6,24 +6,31 @@ module GLI
6
6
 
7
7
  def initialize(names,description,long_desc=nil)
8
8
  super(names,description,long_desc)
9
+ @default_value = false
9
10
  end
10
11
 
11
12
  # Given the argument list, scans it looking for this switch
12
13
  # returning true if it's in the argumennt list (and removing it from the argument list)
13
14
  def get_value!(args)
14
15
  idx = -1
15
- args.each_index do |i|
16
- result = find_me(args[i])
16
+ args.each_index do |index|
17
+ result = find_me(args[index])
17
18
  if result[0]
18
19
  if result[1]
19
- args[i] = result[1]
20
+ args[index] = result[1]
20
21
  else
21
- args.delete_at i
22
+ args.delete_at index
22
23
  end
23
24
  return result[0]
24
25
  end
25
26
  end
26
- false
27
+ @default_value
28
+ end
29
+
30
+ # Used only to configure what's returned if we do not detect this switch on the command line
31
+ # This allows the configuration file to set a switch as always on
32
+ def default_value=(default)
33
+ @default_value = default
27
34
  end
28
35
 
29
36
  # Finds the switch in the given arg, returning the arg to keep.
@@ -43,7 +43,7 @@ module GLI
43
43
  #
44
44
  # +command+:: The command, as a String, to check for, without any path information.
45
45
  def command_exists?(command)
46
- ENV['PATH'].split(File::PATH_SEPARATOR).any? {|d| File.exists? File.join(d, command) }
46
+ ENV['PATH'].split(File::PATH_SEPARATOR).any? {|dir| File.exists? File.join(dir, command) }
47
47
  end
48
48
 
49
49
  # Get the size of the current terminal.
@@ -56,7 +56,7 @@ module GLI
56
56
  elsif (jruby? || (!STDIN.tty? && ENV['TERM'])) && command_exists?('tput')
57
57
  [run_command('tput cols').to_i, run_command('tput lines').to_i]
58
58
  elsif STDIN.tty? && command_exists?('stty')
59
- run_command('stty size').scan(/\d+/).map { |s| s.to_i }.reverse
59
+ run_command('stty size').scan(/\d+/).map { |size_element| size_element.to_i }.reverse
60
60
  else
61
61
  Terminal.default_size
62
62
  end
@@ -1,3 +1,3 @@
1
1
  module GLI
2
- VERSION = '1.2.6'
2
+ VERSION = '1.3.0'
3
3
  end
@@ -5,9 +5,24 @@ require 'gli/terminal'
5
5
  module GLI
6
6
  class DefaultHelpCommand < Command #:nodoc:
7
7
  @@output = $stdout
8
+ @@skips_pre = true
9
+ @@skips_post = true
10
+
8
11
  # Exposed for testing
9
12
  def self.output_device=(o); @@output = o; end
10
13
 
14
+ # To override the default behavior of the help command, which is
15
+ # to NOT run the pre block, use this.
16
+ def self.skips_pre=(skips_pre)
17
+ @@skips_pre = skips_pre
18
+ end
19
+
20
+ # To override the default behavior of the help command, which is
21
+ # to NOT run the post block, use this.
22
+ def self.skips_post=(skips_post)
23
+ @@skips_post = skips_post
24
+ end
25
+
11
26
  def initialize(version,*omit_from_list)
12
27
  @omit_from_list = omit_from_list
13
28
  @version = version
@@ -19,6 +34,9 @@ module GLI
19
34
  self.switch [:c,:completion]
20
35
  end
21
36
 
37
+ def skips_pre; @@skips_pre; end
38
+ def skips_post; @@skips_post; end
39
+
22
40
  def execute(global_options,options,arguments)
23
41
  if options[:c]
24
42
  names = commands_to_show.reduce([]) do |memo,obj|
@@ -47,6 +65,10 @@ module GLI
47
65
  private
48
66
 
49
67
  def list_global_flags
68
+ if GLI.program_desc
69
+ @@output.puts wrap(GLI.program_desc,0)
70
+ @@output.puts
71
+ end
50
72
  usage = "usage: #{GLI.program_name} "
51
73
  all_options = GLI.switches.merge(GLI.flags)
52
74
  if !all_options.empty?
@@ -48,6 +48,10 @@ module GLI
48
48
  def create_rdoc
49
49
  File.open("#{GLI.program_name}.rdoc",'w') do |file|
50
50
  file << "= <tt>#{GLI.program_name}</tt>\n\n"
51
+ if GLI.program_desc
52
+ file << GLI.program_desc
53
+ file << "\n\n"
54
+ end
51
55
  file << " "
52
56
  file << GLI.program_name
53
57
  file << " "
@@ -115,7 +115,6 @@ EOS
115
115
  File.open("#{root_dir}/#{project_name}/test/tc_nothing.rb",'w') do |test_file|
116
116
  test_file.puts <<EOS
117
117
  require 'test/unit'
118
- require 'test/unit/ui/console/testrunner'
119
118
 
120
119
  class TC_testNothing < Test::Unit::TestCase
121
120
 
@@ -173,6 +172,8 @@ require '#{project_name}_version'
173
172
 
174
173
  include GLI
175
174
 
175
+ program_desc 'Describe your application here'
176
+
176
177
  version #{project_name_as_module_name(project_name)}::VERSION
177
178
 
178
179
  desc 'Describe some switch here'
@@ -224,11 +225,15 @@ pre do |global,command,options,args|
224
225
  # Pre logic here
225
226
  # Return true to proceed; false to abourt and not call the
226
227
  # chosen command
228
+ # Use skips_pre before a command to skip this block
229
+ # on that command only
227
230
  true
228
231
  end
229
232
 
230
233
  post do |global,command,options,args|
231
234
  # Post logic here
235
+ # Use skips_post before a command to skip this
236
+ # block on that command only
232
237
  end
233
238
 
234
239
  on_error do |exception|
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 1
7
- - 2
8
- - 6
9
- version: 1.2.6
7
+ - 3
8
+ - 0
9
+ version: 1.3.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - David Copeland
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-03-06 00:00:00 -05:00
17
+ date: 2011-05-01 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -23,73 +23,120 @@ dependencies:
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
- - - ">="
26
+ - - ~>
27
27
  - !ruby/object:Gem::Version
28
28
  segments:
29
29
  - 0
30
30
  - 8
31
- - 7
32
- version: 0.8.7
31
+ - 0
32
+ version: 0.8.0
33
33
  type: :development
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
- name: rcov
36
+ name: rdoc
37
37
  prerelease: false
38
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - ">="
41
+ - - ~>
42
42
  - !ruby/object:Gem::Version
43
43
  segments:
44
+ - 2
45
+ - 4
44
46
  - 0
45
- - 9
46
- - 8
47
- version: 0.9.8
47
+ version: 2.4.0
48
48
  type: :development
49
49
  version_requirements: *id002
50
50
  - !ruby/object:Gem::Dependency
51
- name: rdoc
51
+ name: sdoc
52
52
  prerelease: false
53
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
54
  none: false
55
55
  requirements:
56
- - - ">="
56
+ - - ~>
57
57
  - !ruby/object:Gem::Version
58
58
  segments:
59
+ - 0
59
60
  - 2
60
- - 4
61
- - 3
62
- version: 2.4.3
61
+ - 0
62
+ version: 0.2.0
63
63
  type: :development
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
66
- name: sdoc
66
+ name: reek
67
67
  prerelease: false
68
68
  requirement: &id004 !ruby/object:Gem::Requirement
69
69
  none: false
70
70
  requirements:
71
- - - ">="
71
+ - - ~>
72
72
  - !ruby/object:Gem::Version
73
73
  segments:
74
- - 0
74
+ - 1
75
75
  - 2
76
- - 20
77
- version: 0.2.20
76
+ - 0
77
+ version: 1.2.0
78
78
  type: :development
79
79
  version_requirements: *id004
80
80
  - !ruby/object:Gem::Dependency
81
- name: grancher
81
+ name: roodi
82
82
  prerelease: false
83
83
  requirement: &id005 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
- - - ">="
86
+ - - ~>
87
87
  - !ruby/object:Gem::Version
88
88
  segments:
89
+ - 2
90
+ - 1
89
91
  - 0
90
- version: "0"
92
+ version: 2.1.0
91
93
  type: :development
92
94
  version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: grancher
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ segments:
104
+ - 0
105
+ - 1
106
+ - 5
107
+ version: 0.1.5
108
+ type: :development
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: rainbow
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ segments:
119
+ - 1
120
+ - 1
121
+ - 1
122
+ version: 1.1.1
123
+ type: :development
124
+ version_requirements: *id007
125
+ - !ruby/object:Gem::Dependency
126
+ name: aruba
127
+ prerelease: false
128
+ requirement: &id008 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ segments:
134
+ - 0
135
+ - 3
136
+ - 6
137
+ version: 0.3.6
138
+ type: :development
139
+ version_requirements: *id008
93
140
  description: An application and API for describing command line interfaces that can be used to quickly create a shell for executing command-line tasks. The command line user interface is similar to Gits, in that it takes global options, a command, command-specific options, and arguments
94
141
  email: davidcopeland@naildrivin5.com
95
142
  executables:
@@ -102,6 +149,7 @@ extra_rdoc_files:
102
149
  files:
103
150
  - lib/gli/command.rb
104
151
  - lib/gli/command_line_token.rb
152
+ - lib/gli/copy_options_to_aliases.rb
105
153
  - lib/gli/flag.rb
106
154
  - lib/gli/switch.rb
107
155
  - lib/gli/options.rb