cyclops 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +4 -0
- data/README +3 -2
- data/Rakefile +2 -1
- data/lib/cyclops/option_parser_extension.rb +33 -19
- data/lib/cyclops/version.rb +1 -1
- metadata +8 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c7bfa77550e65e5f43540c3eb45b68c39d8699e
|
4
|
+
data.tar.gz: 778b46e92d8b22c33eea63f03177459608a4615f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66d0e27a997554bb1bfbaab940b3c7a84f6709f5d7e337a6c5b22679b33e5af4fb51d47951a60d45d697c36a9935dbaf312b8a1aa2643cf0731d2fac27dc87c8
|
7
|
+
data.tar.gz: ed78fac887806de5c77d631d8aa1099569a50a353756794b454656fcc3cd908e5cfe9cae0a6a374ed6571a0926dbdb069574cd373a2a23901b77a22cae5676c5
|
data/ChangeLog
CHANGED
data/README
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
|
3
3
|
== VERSION
|
4
4
|
|
5
|
-
This documentation refers to cyclops version 0.0.
|
5
|
+
This documentation refers to cyclops version 0.0.3
|
6
6
|
|
7
7
|
|
8
8
|
== DESCRIPTION
|
9
9
|
|
10
|
-
As if there weren't
|
10
|
+
Provides a convenient interface around optparse. As if there weren't
|
11
|
+
enough CLI libraries already...
|
11
12
|
|
12
13
|
|
13
14
|
== LINKS
|
data/Rakefile
CHANGED
@@ -7,7 +7,8 @@ begin
|
|
7
7
|
gem: {
|
8
8
|
name: %q{cyclops},
|
9
9
|
version: Cyclops::VERSION,
|
10
|
-
summary: %q{A command-line option parser.},
|
10
|
+
summary: %q{A command-line option parser based on optparse.},
|
11
|
+
description: %q{Provides a convenient interface around optparse.},
|
11
12
|
author: %q{Jens Wille},
|
12
13
|
email: %q{jens.wille@gmail.com},
|
13
14
|
license: %q{AGPL-3.0},
|
@@ -40,48 +40,62 @@ class Cyclops
|
|
40
40
|
super
|
41
41
|
end
|
42
42
|
|
43
|
+
# Delegates to #on with some convenience shortcuts.
|
44
|
+
#
|
45
|
+
# If +name+ is a Symbol, installs both long and short options.
|
46
|
+
# If the first element of +args+ is a Symbol, this is installed
|
47
|
+
# as the short option, otherwise the first character of +name+ is
|
48
|
+
# installed as the short option.
|
49
|
+
#
|
50
|
+
# If +name+ is a String, installs only the long option.
|
51
|
+
#
|
52
|
+
# If +name+ contains an argument name, separated by double underscore,
|
53
|
+
# additionally sets the CLI's +name+ option (as a Symbol) to the
|
54
|
+
# provided value and calls the optional block with that value. If
|
55
|
+
# the argument name ends with a question mark, the value is marked
|
56
|
+
# as optional.
|
43
57
|
def option(name, *args, &block)
|
44
58
|
if name =~ /(\w+)__(\w+)(\?)?\z/
|
45
59
|
sym = name.is_a?(Symbol)
|
46
60
|
|
47
61
|
name, arg, opt = $1, $2, !!$3
|
48
|
-
name
|
49
|
-
|
50
|
-
args = __on_opts(name, *args)
|
62
|
+
__on_opts(name, args, sym)
|
51
63
|
|
52
64
|
arg = "[#{arg}]" if opt
|
53
65
|
args.grep(/\A--/).first << " #{arg}"
|
54
66
|
|
55
67
|
on(*args) { |value|
|
56
|
-
cli.options[name] = value
|
68
|
+
cli.options[name.to_sym] = value
|
57
69
|
yield value if block_given?
|
58
70
|
}
|
59
71
|
else
|
60
|
-
on(*__on_opts(name,
|
72
|
+
on(*__on_opts(name, args), &block)
|
61
73
|
end
|
62
74
|
end
|
63
75
|
|
76
|
+
# Delegates to #on with some convenience shortcuts.
|
77
|
+
#
|
78
|
+
# If +name+ is a Symbol, installs both long and short options.
|
79
|
+
# If the first element of +args+ is a Symbol, this is installed
|
80
|
+
# as the short option, otherwise the first character of +name+ is
|
81
|
+
# installed as the short option.
|
82
|
+
#
|
83
|
+
# If +name+ is a String, installs only the long option.
|
84
|
+
#
|
85
|
+
# Sets the CLI's +name+ option (as a Symbol) to +true+ and calls
|
86
|
+
# the optional block (with no argument).
|
64
87
|
def switch(name, *args)
|
65
|
-
on(*__on_opts(name,
|
66
|
-
cli.options[name] = true
|
88
|
+
on(*__on_opts(name, args)) {
|
89
|
+
cli.options[name.to_sym] = true
|
67
90
|
yield if block_given?
|
68
91
|
}
|
69
92
|
end
|
70
93
|
|
71
94
|
private
|
72
95
|
|
73
|
-
def __on_opts(name,
|
74
|
-
|
75
|
-
|
76
|
-
long = "--#{name.to_s.tr('_', '-')}"
|
77
|
-
|
78
|
-
args.unshift(args.first.is_a?(Symbol) ?
|
79
|
-
"-#{args.shift}" : long[1, 2], long)
|
80
|
-
when String
|
81
|
-
args.unshift("--#{name}")
|
82
|
-
else
|
83
|
-
args.unshift(name)
|
84
|
-
end
|
96
|
+
def __on_opts(name, args, sym = name.is_a?(Symbol))
|
97
|
+
args.insert(0, "-#{args[0].is_a?(Symbol) ? args.shift : name[0]}") if sym
|
98
|
+
args.insert(sym ? 1 : 0, "--#{name.to_s.tr('_', '-')}")
|
85
99
|
end
|
86
100
|
|
87
101
|
end
|
data/lib/cyclops/version.rb
CHANGED
metadata
CHANGED
@@ -1,35 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cyclops
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Wille
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDMDCCAhigAwIBAgIBADANBgkqhkiG9w0BAQUFADA+MQswCQYDVQQDDAJ3dzEb
|
14
|
-
MBkGCgmSJomT8ixkARkWC2JsYWNrd2ludGVyMRIwEAYKCZImiZPyLGQBGRYCZGUw
|
15
|
-
HhcNMTMwMTMxMDkyMjIyWhcNMTQwMTMxMDkyMjIyWjA+MQswCQYDVQQDDAJ3dzEb
|
16
|
-
MBkGCgmSJomT8ixkARkWC2JsYWNrd2ludGVyMRIwEAYKCZImiZPyLGQBGRYCZGUw
|
17
|
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVXmfa6rbTwKOvtuGoROc1
|
18
|
-
I4qZjgLX0BA4WecYB97PjwLJmJ1hRvf9JulVCJYYmt5ZEPPXbgi9xLbcp6ofGmnC
|
19
|
-
i68/kbhcz20/fRUtIJ2phU3ypQTEd2pFddpL7SR2FxLkzvvg5E6nslGn7o2erDpO
|
20
|
-
8sm610A3xsgT/eNIr9QA7k4pHh18X1KvZKmmQR4/AjVyKmKawzauKUoHHepjvjVs
|
21
|
-
s0pVoM7UmOmrS4SafQ3OwUo37f19CVdN2/FW7z3e5+iYhKxdIFdhniX9iDWtA3Jn
|
22
|
-
7oUOtiolhCRK4P/c30UjTCDkRkOldsWciFUasROJ5VAV2SVv7FtGHoQLDZ/++tRr
|
23
|
-
AgMBAAGjOTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFIAPWU4BEoYUe82hY/0EkoGd
|
24
|
-
Oo/WMAsGA1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEAf2YnB0mj42of22dA
|
25
|
-
MimgJCAEgB3H5aHbZ6B5WVnFvrC2UUnhP+/kLj/6UgOfqcasy4Xh62NVGuNrf7rF
|
26
|
-
7NMN87XwexGuU2GCpIMUd6VCTA7zMP2OWuXEcba7jT5OtiI55buO0J4CRtyeX1XF
|
27
|
-
qwlGgx4ItcGhMTlDFXj3IkpeVtjD8O7yWE21bHf9lLURmqK/r9KjoxrrVi7+cESJ
|
28
|
-
H19TDW3R9p594jCl1ykPs3dz/0Bk+r1HTd35Yw+yBbyprSJb4S7OcRRHCryuo09l
|
29
|
-
NBGyZvOBuqUp0xostWSk0dfxyn/YQ7eqvQRGBhK1VGa7Tg/KYqnemDE57+VOXrua
|
30
|
-
59wzaA==
|
31
|
-
-----END CERTIFICATE-----
|
32
|
-
date: 2014-04-12 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-14 00:00:00.000000000 Z
|
33
12
|
dependencies:
|
34
13
|
- !ruby/object:Gem::Dependency
|
35
14
|
name: highline
|
@@ -87,7 +66,7 @@ dependencies:
|
|
87
66
|
- - ">="
|
88
67
|
- !ruby/object:Gem::Version
|
89
68
|
version: '0'
|
90
|
-
description:
|
69
|
+
description: Provides a convenient interface around optparse.
|
91
70
|
email: jens.wille@gmail.com
|
92
71
|
executables: []
|
93
72
|
extensions: []
|
@@ -109,14 +88,13 @@ licenses:
|
|
109
88
|
metadata: {}
|
110
89
|
post_install_message: |2+
|
111
90
|
|
112
|
-
cyclops-0.0.
|
91
|
+
cyclops-0.0.3 [2014-04-14]:
|
113
92
|
|
114
|
-
*
|
115
|
-
* Fixed error in OptionParser convenience methods.
|
93
|
+
* Always set symbol key in options hash.
|
116
94
|
|
117
95
|
rdoc_options:
|
118
96
|
- "--title"
|
119
|
-
- cyclops Application documentation (v0.0.
|
97
|
+
- cyclops Application documentation (v0.0.3)
|
120
98
|
- "--charset"
|
121
99
|
- UTF-8
|
122
100
|
- "--line-numbers"
|
@@ -140,5 +118,5 @@ rubyforge_project:
|
|
140
118
|
rubygems_version: 2.2.2
|
141
119
|
signing_key:
|
142
120
|
specification_version: 4
|
143
|
-
summary: A command-line option parser.
|
121
|
+
summary: A command-line option parser based on optparse.
|
144
122
|
test_files: []
|