pargser 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/pargser.rb +24 -21
- data/pargser.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2766da1ace1d84c0bdd1f2095e32c7aa4ef0cdee
|
4
|
+
data.tar.gz: ab46a7f67e9ad2d730d13d51bdaa3acf5d91ff64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6772dad90c716c614436b60a047ba2db174d309a4842592da2a46d4cb17e6dc023e8ccce9818a501cc7d7a8300e96cff0c37f0ada244f1631df73091508d9a2e
|
7
|
+
data.tar.gz: ee2a5d230a2f81d6053a55c1cc6e6498d01d3c9f0c823cb1b0f8cbb27ae62b7a65ddf15b356cd779ab9e829939095bafa31d16ede7f101019e00a70888b052a1
|
data/README.md
CHANGED
@@ -21,7 +21,7 @@ Or install it yourself as:
|
|
21
21
|
|
22
22
|
## Usage
|
23
23
|
|
24
|
-
|
24
|
+
Rather straightforward
|
25
25
|
|
26
26
|
p = Pargser.new.key('-f', '--fantastic') {
|
27
27
|
@fantastic = true
|
@@ -68,7 +68,7 @@ Very straightforward
|
|
68
68
|
|
69
69
|
p.keys_doc.should == expected_docs
|
70
70
|
|
71
|
-
For details please consult documentation:
|
71
|
+
For details please consult documentation: http://www.rubydoc.info/gems/pargser
|
72
72
|
|
73
73
|
## Contributing
|
74
74
|
|
data/lib/pargser.rb
CHANGED
@@ -2,12 +2,14 @@ require "pargser"
|
|
2
2
|
|
3
3
|
# The Ruby-Style (e,g, nice and laconic) command line parser that easily supports:
|
4
4
|
#
|
5
|
-
# --keys
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
5
|
+
# * --keys
|
6
|
+
# optional keys with any number of aliases aliases
|
7
|
+
#
|
8
|
+
# * -name value
|
9
|
+
# key that wants value (next agrument), optionally with default value
|
10
|
+
#
|
11
|
+
# * --
|
12
|
+
# no more keys past double dash
|
11
13
|
#
|
12
14
|
# and regular (all other) arguments.
|
13
15
|
#
|
@@ -15,7 +17,7 @@ require "pargser"
|
|
15
17
|
#
|
16
18
|
class Pargser
|
17
19
|
|
18
|
-
VERSION = "0.1.
|
20
|
+
VERSION = "0.1.1"
|
19
21
|
|
20
22
|
# The pargser errors, e.g. wrong usage or command line does not fit specified
|
21
23
|
# keys ocnstraints.
|
@@ -25,7 +27,8 @@ class Pargser
|
|
25
27
|
# Create parser instance with a list of arguments. Otherwise, arguments can
|
26
28
|
# be passed to #parse call.
|
27
29
|
#
|
28
|
-
# @param [Array]
|
30
|
+
# @param args [Array] optional command line arguments. Usually it is more convenient
|
31
|
+
# to pass them to #parse
|
29
32
|
def initialize args=[]
|
30
33
|
@args = args
|
31
34
|
@keys = {}
|
@@ -33,23 +36,23 @@ class Pargser
|
|
33
36
|
@docs = []
|
34
37
|
end
|
35
38
|
|
36
|
-
# Register key handler.
|
37
|
-
#
|
38
|
-
# arguments array
|
39
|
+
# Register a new key handler. When #parse fonds a key (or an alias) the blocks will be called.
|
40
|
+
# Invocation order is same as in the command line.
|
39
41
|
#
|
42
|
+
# @param name [String] key name
|
40
43
|
#
|
41
|
-
# @param [String]
|
44
|
+
# @param aliases [Array(String)] any number of aliases for the key
|
42
45
|
#
|
43
|
-
# @param [
|
44
|
-
#
|
45
|
-
# @param [Boolean] :needs_value if set then the parser wants a value argument after the
|
46
|
+
# @param needs_value [Boolean] if set then the parser wants a value argument after the
|
46
47
|
# key which will be passed to block as an argument. if default param is not set and
|
47
48
|
# the key will not be detected, Pargser::Error will be raised
|
48
49
|
#
|
49
|
-
# @param [String]
|
50
|
-
# block will be
|
50
|
+
# @param default [String] default value. if set, needs_value parameter can be omitted -
|
51
|
+
# the handler block will be invoked with either this value or with one from args.
|
52
|
+
#
|
53
|
+
# @param doc [String] optional documentation string that will be used in #keys_doc
|
51
54
|
#
|
52
|
-
# @
|
55
|
+
# @return [Pargser] self
|
53
56
|
#
|
54
57
|
# @yield block if the key is found with optional value argument
|
55
58
|
#
|
@@ -88,10 +91,10 @@ class Pargser
|
|
88
91
|
#
|
89
92
|
# You can optionally set other arguments than specified in constructor
|
90
93
|
#
|
91
|
-
# @param [Array]
|
94
|
+
# @param args [Array(String)] to parse. If specified, arguments passed to constructor
|
92
95
|
# will be ignored and lost
|
93
|
-
# @return [Array] non-keys arguments (keys
|
94
|
-
# @yield [String] non keys
|
96
|
+
# @return [Array] non-keys arguments (keys after '--' or other arguments)
|
97
|
+
# @yield [String] non keys arguments in order of appearance (same as returned)
|
95
98
|
def parse args=nil
|
96
99
|
@args = args.clone if args
|
97
100
|
no_more_keys = false
|
data/pargser.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "pargser"
|
8
8
|
spec.version = Pargser::VERSION
|
9
9
|
spec.authors = ["sergeych"]
|
10
|
-
spec.email = ["sergeych"]
|
10
|
+
spec.email = ["real.sergeych@gmail.com"]
|
11
11
|
spec.summary = %q{Very Ruby-style command line parser}
|
12
12
|
spec.description = %q{Allows to write CLI in ruby without headache of arguments parsing and
|
13
13
|
usage writing}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pargser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sergeych
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -56,7 +56,7 @@ description: |-
|
|
56
56
|
Allows to write CLI in ruby without headache of arguments parsing and
|
57
57
|
usage writing
|
58
58
|
email:
|
59
|
-
- sergeych
|
59
|
+
- real.sergeych@gmail.com
|
60
60
|
executables: []
|
61
61
|
extensions: []
|
62
62
|
extra_rdoc_files: []
|