docopt 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.md +15 -4
  2. data/lib/docopt.rb +12 -1
  3. metadata +1 -1
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  `docopt` – command line option parser, that will make you smile
2
2
  ===============================================================================
3
3
 
4
- Help porting [docopt](http://docopt.org/) to Ruby!
4
+ [![Build Status](https://secure.travis-ci.org/alexspeller/docopt.png?branch=master)](http://travis-ci.org/alexspeller/docopt)
5
5
 
6
6
  Isn't it awesome how `optparse` and other option parsers generate help and
7
7
  usage-messages based on your code?!
@@ -50,10 +50,21 @@ end
50
50
  Hell yeah! The option parser is generated based on `doc` string above, that you
51
51
  pass to the `Docopt` function.
52
52
 
53
- API `require 'docopt'`
54
- ===============================================================================
53
+ ```ruby
54
+ require 'docopt'
55
+ doc = "Usage: your_program.rb [options]
56
+
57
+ -h --help Show this.
58
+ -v --verbose Print more text.
59
+ --quiet Print less text.
60
+ -o FILE Specify output file [default: ./test.txt]"
61
+
62
+ options = Docopt(doc, version=nil, help=true)`
63
+
64
+ options['--help'] # returns true or false depending on option given
65
+
66
+ ```
55
67
 
56
- ###`options = Docopt(doc, version=nil, help=true)`
57
68
 
58
69
  `Docopt` takes 1 required and 2 optional arguments:
59
70
 
@@ -29,6 +29,14 @@ class Docopt
29
29
  end
30
30
  end
31
31
 
32
+ def set_value val
33
+ if argcount.zero?
34
+ @value = true
35
+ else
36
+ @value = val
37
+ end
38
+ end
39
+
32
40
  def synonyms
33
41
  ([short, long] + symbols).compact
34
42
  end
@@ -59,12 +67,15 @@ class Docopt
59
67
  end
60
68
 
61
69
  GetoptLong.new(*docopts.map(&:getopt)).each do |opt, arg|
70
+ docopt_option = option(opt)
62
71
  if help and (opt == '--help' or opt == '-h')
63
72
  puts doc.strip
64
73
  exit
65
74
  elsif version and opt == '--version'
66
75
  puts version
67
76
  exit
77
+ else
78
+ option.set_value arg
68
79
  end
69
80
  end
70
81
  end
@@ -76,7 +87,7 @@ class Docopt
76
87
  raise UnknownOptionError.new("#{name} option not found") unless option
77
88
  option
78
89
  end
79
-
90
+
80
91
 
81
92
 
82
93
  def value name
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docopt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: