args 0.0.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.md +13 -0
- data/lib/args.rb +41 -0
- metadata +66 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5095311d388c493bda7dc5c389cf4aa526b27ef2
|
4
|
+
data.tar.gz: 28a6d6517c9657241b80c6a61239bdacea9c11bb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a7d0ecca045328d7e2af836a09d373028d4cb831c1510beb1a4529ee07ce673b12fa073ece247459e63b9afcbab8058a3f15dcaa19609b567f78d27ee984018d
|
7
|
+
data.tar.gz: b8b38f592be9afe629302289b361bc7163fca1739827cec216fe8d401f13a17ed0a7542d6ab13bc22b83efbda6a27c6a23f838025027bc9b0be202a2d15fc4cb
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/README.md
ADDED
data/lib/args.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
class Args
|
3
|
+
def initialize
|
4
|
+
@args = {}
|
5
|
+
end
|
6
|
+
|
7
|
+
def add_arg(k, arity)
|
8
|
+
@args[k] = arity == 1 ? ":" : ""
|
9
|
+
end
|
10
|
+
|
11
|
+
def parse(args)
|
12
|
+
cmd = %<set -- #{args.map {|a| "\"#{a}\""}.join(" ")}; while getopts :#{to_getopts} arg; do\n>
|
13
|
+
cmd << "case \"$arg\" in\n"
|
14
|
+
@args.each do |k, v|
|
15
|
+
cmd << "#{k}) echo #{k}"
|
16
|
+
cmd << "==$OPTARG" if v == ":"
|
17
|
+
cmd << ";;\n"
|
18
|
+
end
|
19
|
+
cmd << "esac; done"
|
20
|
+
output = `#{cmd}`
|
21
|
+
return handle(output)
|
22
|
+
end
|
23
|
+
|
24
|
+
def handle(output)
|
25
|
+
Hash.new.tap do |v|
|
26
|
+
output.lines.each do |l|
|
27
|
+
if l =~ /^(.)$/
|
28
|
+
v[$1] = true
|
29
|
+
elsif l =~ /^(.)==(.*)$/
|
30
|
+
v[$1] = $2
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_getopts
|
37
|
+
@args.map do |k, v|
|
38
|
+
"#{k}#{v}"
|
39
|
+
end.join("")
|
40
|
+
end
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: args
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Richo Healey
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDNDCCAhygAwIBAgIBADANBgkqhkiG9w0BAQUFADBAMQ4wDAYDVQQDDAVyaWNo
|
14
|
+
bzEZMBcGCgmSJomT8ixkARkWCXBzeWNoMHRpazETMBEGCgmSJomT8ixkARkWA25l
|
15
|
+
dDAeFw0xMjEwMjYxMzM1MTZaFw0xMzEwMjYxMzM1MTZaMEAxDjAMBgNVBAMMBXJp
|
16
|
+
Y2hvMRkwFwYKCZImiZPyLGQBGRYJcHN5Y2gwdGlrMRMwEQYKCZImiZPyLGQBGRYD
|
17
|
+
bmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxBycVXaMP1jfXtFO
|
18
|
+
j/q8HD5Xe5/9u+od+IRaBC5GCftOVR7XmwON/M8hVk9fdmHnSc8HDcArSsTNyDyI
|
19
|
+
+grMXT0TSzd6zruG8xnHZSjGCo6gxpvhbpLg6mFOVjWBMt0/dV+tzfSNdCI+sXiH
|
20
|
+
amYzmxibEQPM1xgZPphUuEDdrWs1COVlAZO4zA2U6XaFGVXKB4COUdxeHlchWH7t
|
21
|
+
OGRv8QAq6YDm0RDJayrM092bvQFWHQ4jrz1LikBusiIbUL8agbcLUPKaw7UQCYa/
|
22
|
+
aY1FDCJFLFuJhThgRufFH0t7OWrTUaBsCKj+NdJvp2Y7zcP91ZWQafYtY4vzt4G4
|
23
|
+
d57TwQIDAQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQ/F+jjOeqPoy3rZK9A
|
24
|
+
eipjGWiAZTALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQADggEBABhkwk15TSxt
|
25
|
+
QNk69HWzrANn4croLV3yUPWc7TL6ISngG51G+piAuq/zkd5QXira1fpgko87M7oy
|
26
|
+
0IHDalsJFGvPAAa6rYI4PpmceHoP9uo8iFKi4HQd2HjqjGwJ3fsrzS6Gsahbh1Qs
|
27
|
+
MwRLVBy7TV2Cb08QUlB8o9N4VGgShgl7tgFVWCU+XVUBc8XffqTlhObSCzSKZ5tZ
|
28
|
+
nu8ubBEvFw0uzGJGQsDhj1bxyi5DubK2XOxU7Gr/fyBVxys9E0WMUPEet6lz+6la
|
29
|
+
EZooDFA4YmMIfW8Fvj2/T3V/sL1vJSDCdTv7ECdoX5snQmTxD9pFsUmxLfiJ/MFM
|
30
|
+
iiw+OPtvlsI=
|
31
|
+
-----END CERTIFICATE-----
|
32
|
+
date: 2013-06-24 00:00:00.000000000 Z
|
33
|
+
dependencies: []
|
34
|
+
description: Argument parsing for ruby
|
35
|
+
email:
|
36
|
+
- richo@psych0tik.net
|
37
|
+
executables: []
|
38
|
+
extensions: []
|
39
|
+
extra_rdoc_files: []
|
40
|
+
files:
|
41
|
+
- README.md
|
42
|
+
- lib/args.rb
|
43
|
+
homepage: http://github.com/richo/args
|
44
|
+
licenses: []
|
45
|
+
metadata: {}
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements: []
|
61
|
+
rubyforge_project:
|
62
|
+
rubygems_version: 2.0.2
|
63
|
+
signing_key:
|
64
|
+
specification_version: 4
|
65
|
+
summary: Argument parsing for ruby
|
66
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|