climate 0.3.0 → 0.4.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.
@@ -32,6 +32,7 @@ module Climate
32
32
 
33
33
  def optional? ; spec.has_key?(:default) ; end
34
34
  def required? ; ! optional? ; end
35
+ def multi? ; spec[:multi] ; end
35
36
 
36
37
  def spec ; @specs ||= parser.specs[@name] ; end
37
38
 
@@ -44,7 +45,7 @@ module Climate
44
45
  end
45
46
 
46
47
  def short_usage
47
- short && (type == :flag ? "-#{short}" : "-#{short}<#{type}>")
48
+ short && (type == :flag ? "-#{short}" : "-#{short} <#{name}>")
48
49
  end
49
50
 
50
51
  def usage(options={})
@@ -56,6 +57,8 @@ module Climate
56
57
 
57
58
  if optional? && !options.fetch(:hide_optional, false)
58
59
  "[#{help}]"
60
+ elsif multi? && !options.fetch(:hide_optional, false)
61
+ "[#{help}...]"
59
62
  else
60
63
  help
61
64
  end
@@ -170,7 +173,7 @@ module Climate
170
173
  elsif (m = /option (.+) must be specified/.match(e.message))
171
174
  raise MissingArgumentError.new(m[1], command)
172
175
  else
173
- raise
176
+ raise CommandError.new(e.message, command)
174
177
  end
175
178
  end
176
179
 
@@ -1,3 +1,3 @@
1
1
  module Climate
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
data/lib/climate.rb CHANGED
@@ -22,6 +22,10 @@ module Climate
22
22
  $stderr.puts("Missing argument: #{e.message}")
23
23
  print_usage(e.command_class)
24
24
  exit(1)
25
+ rescue CommandError => e
26
+ $stderr.puts(e.message)
27
+ print_usage(e.command_class)
28
+ exit(1)
25
29
  rescue => e
26
30
  $stderr.puts("Unexpected error: #{e.class.name} - #{e.message}")
27
31
  $stderr.puts(e.backtrace)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: climate
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
8
+ - 4
9
9
  - 0
10
- version: 0.3.0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nick Griffiths
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-08-08 00:00:00 Z
18
+ date: 2012-08-29 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: trollop