gli 2.6.0 → 2.6.1

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.
@@ -18,6 +18,11 @@ module GLI
18
18
  self.name.to_s <=> other.name.to_s
19
19
  end
20
20
 
21
+ # Array of the name and aliases, as string
22
+ def names_and_aliases
23
+ [self.name,self.aliases].flatten.compact.map(&:to_s)
24
+ end
25
+
21
26
  private
22
27
  # Returns a string of all possible forms
23
28
  # of this flag. Mostly intended for printing
@@ -67,8 +67,7 @@ COMMANDS
67
67
  sub.flags.merge(sub.switches)
68
68
  end
69
69
  usage << sub_options.map { |option_name,option|
70
- all_names = [option.name,Array(option.aliases)].flatten
71
- all_names.map { |_|
70
+ option.names_and_aliases.map { |_|
72
71
  CommandLineOption.name_as_string(_,false) + (option.kind_of?(Flag) ? " #{option.argument_name }" : '')
73
72
  }.join('|')
74
73
  }.map { |_| "[#{_}]" }.sort.join(' ')
@@ -37,8 +37,12 @@ module GLI
37
37
  private
38
38
 
39
39
  def set_defaults(options_by_name,options_hash)
40
- options_by_name.each do |name,option|
41
- options_hash[name] = option.default_value if options_hash[name].nil?
40
+ options_by_name.values.each do |option|
41
+ option.names_and_aliases.each do |option_name|
42
+ [option_name,option_name.to_sym].each do |name|
43
+ options_hash[name] = option.default_value if options_hash[name].nil?
44
+ end
45
+ end
42
46
  end
43
47
  end
44
48
 
@@ -53,7 +57,7 @@ module GLI
53
57
  def self.setup_options(opts,tokens,options)
54
58
  tokens.each do |ignore,token|
55
59
  opts.on(*token.arguments_for_option_parser) do |arg|
56
- [token.name,token.aliases].flatten.compact.map(&:to_s).each do |name|
60
+ token.names_and_aliases.each do |name|
57
61
  options[name] = arg
58
62
  options[name.to_sym] = arg
59
63
  end
@@ -1,5 +1,5 @@
1
1
  module GLI
2
2
  unless const_defined? :VERSION
3
- VERSION = '2.6.0'
3
+ VERSION = '2.6.1'
4
4
  end
5
5
  end
@@ -419,11 +419,11 @@ class TC_testGLI < Clean::Test::TestCase
419
419
  c.flag :i
420
420
  c.flag :s
421
421
  c.action do |g,o,a|
422
- assert_equal "5", o[:i]
423
- assert_equal "a", o[:s]
422
+ assert_equal "1", o[:i]
423
+ assert_equal nil, o[:s]
424
424
  end
425
425
  end
426
- @app.run(['foo', '-i','5','-s','a'])
426
+ @app.run(['foo','a'])
427
427
  end
428
428
 
429
429
  def test_switch_with_default_of_true
@@ -480,6 +480,39 @@ class TC_testGLI < Clean::Test::TestCase
480
480
  @app.run(['foo', '-i5','-sa'])
481
481
  end
482
482
 
483
+ def test_default_values_are_available_on_all_aliases
484
+ @app.reset
485
+ @app.on_error { |e| raise e }
486
+
487
+ @app.default_value "global_default"
488
+ @app.flag [ :f, :flag ]
489
+
490
+ @global_options = {}
491
+ @command_options = {}
492
+
493
+ @app.command [:foo] do |c|
494
+ c.default_value "command_default"
495
+ c.flag [ :c,:commandflag]
496
+
497
+ c.action do |g,o,a|
498
+ @global_options = g
499
+ @command_options = o
500
+ end
501
+ end
502
+
503
+ @app.run(["foo"])
504
+
505
+ assert_equal "global_default", @global_options[:f]
506
+ assert_equal "global_default", @global_options[:flag]
507
+ assert_equal "global_default", @global_options["f"]
508
+ assert_equal "global_default", @global_options["flag"]
509
+
510
+ assert_equal "command_default", @command_options[:c]
511
+ assert_equal "command_default", @command_options[:commandflag]
512
+ assert_equal "command_default", @command_options["c"]
513
+ assert_equal "command_default", @command_options["commandflag"]
514
+ end
515
+
483
516
  def test_exits_zero_on_success
484
517
  @app.reset
485
518
  assert_equal 0,@app.run([]),@fake_stderr.to_s
@@ -137,10 +137,12 @@ class TC_testSubCommand < Clean::Test::TestCase
137
137
 
138
138
  def indifferent_hash(possibly_nil_hash)
139
139
  return {} if possibly_nil_hash.nil?
140
- keys = possibly_nil_hash.keys
141
- keys.map(&:to_s).each do |key|
142
- possibly_nil_hash[key.to_sym] = possibly_nil_hash[key] if possibly_nil_hash[key]
143
- possibly_nil_hash[key] = possibly_nil_hash[key.to_sym] if possibly_nil_hash[key.to_sym]
140
+ possibly_nil_hash.keys.each do |key|
141
+ if key.kind_of? Symbol
142
+ possibly_nil_hash[key.to_s] = possibly_nil_hash[key] unless possibly_nil_hash.has_key?(key.to_s)
143
+ elsif key.kind_of? String
144
+ possibly_nil_hash[key.to_sym] = possibly_nil_hash[key] unless possibly_nil_hash.has_key?(key.to_sym)
145
+ end
144
146
  end
145
147
  possibly_nil_hash
146
148
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-22 00:00:00.000000000 Z
12
+ date: 2013-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake