arg0 0.0.2 → 0.0.3
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.
- data/CHANGELOG +7 -0
- data/README.md +26 -3
- data/Rakefile +9 -0
- data/lib/arg0.rb +27 -1
- data/lib/arg0/version.rb +1 -1
- data/test/test_arg0_console.rb +60 -0
- metadata +6 -3
data/CHANGELOG
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
##### v0.0.3
|
2
|
+
|
3
|
+
feature updates, tests added
|
4
|
+
[+] Arg0::Consoe.keyring # to fetch hash of all arguments (refer: README.md)
|
5
|
+
[+] Arg0::Console.values # alias to value_for, returns array of available values
|
6
|
+
[+] Arg0::Console.value # singular to value_for, returns first available value or nil
|
7
|
+
|
1
8
|
##### v0.0.2
|
2
9
|
|
3
10
|
multiple synoymous arguments to be fetched
|
data/README.md
CHANGED
@@ -18,19 +18,42 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
to load it up
|
21
|
+
* to load it up
|
22
22
|
|
23
23
|
require 'arg0'
|
24
24
|
|
25
|
-
to check if a bool-type switch is provided
|
25
|
+
* to check if a bool-type switch is provided
|
26
26
|
|
27
27
|
Arg0::Console.switch?('--is-arg')
|
28
28
|
Arg0::Console.switch?(['-isarg', '--is-arg']) # synonymous args
|
29
29
|
|
30
|
-
returning array of (empty or) Value(s) provided after --my-arg at ARGV
|
30
|
+
* returning array of (empty or) Value(s) provided after --my-arg at ARGV
|
31
31
|
|
32
32
|
Arg0::Console.value_for('--my-arg')
|
33
|
+
is same as Arg0::Console.values('--my-arg')
|
34
|
+
|
35
|
+
>
|
36
|
+
|
33
37
|
Arg0::Console.value_for(['-myarg', '--my-arg']) # synonymous args
|
38
|
+
is same as Arg0::Console.values(['-myarg', '--my-arg'])
|
39
|
+
|
40
|
+
|
41
|
+
* returning the first value (not array of all) for any switch
|
42
|
+
|
43
|
+
Arg0::Console.value('--my-arg')
|
44
|
+
Arg0::Console.value(['-myarg', '--my-arg']) # synonymous args
|
45
|
+
|
46
|
+
|
47
|
+
* returning Hash for all the Arguments provided as argument on console
|
48
|
+
|
49
|
+
suppose command run was
|
50
|
+
$ arg0_based_cmd -src ./lib -type html -v -l ./log/app.log start
|
51
|
+
|
52
|
+
>
|
53
|
+
|
54
|
+
Arg0::Console.keyring
|
55
|
+
# will return {'-src' => './lib', '-type' => 'html', '-v' => true, '-l' => './log/app', 'start' => :data }
|
56
|
+
|
34
57
|
|
35
58
|
## Contributing
|
36
59
|
|
data/Rakefile
CHANGED
data/lib/arg0.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# arg0
|
2
|
-
arg0_libs = File.join(File.dirname(File.expand_path __FILE__), '
|
2
|
+
arg0_libs = File.join(File.dirname(File.expand_path __FILE__), 'arg0', '*.rb')
|
3
3
|
Dir.glob(arg0_libs).each do |lib|
|
4
4
|
require lib
|
5
5
|
end
|
@@ -22,5 +22,31 @@ module Arg0
|
|
22
22
|
values.delete nil
|
23
23
|
values
|
24
24
|
end
|
25
|
+
|
26
|
+
class << self; alias values value_for; end
|
27
|
+
|
28
|
+
def self.value(switch_name)
|
29
|
+
ARGV.each_with_index {|arg, index|
|
30
|
+
if [switch_name].flatten.include? arg
|
31
|
+
return ARGV[index + 1]
|
32
|
+
end
|
33
|
+
}
|
34
|
+
nil
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.keyring
|
38
|
+
key_vals = {}
|
39
|
+
ARGV.each {|arg|
|
40
|
+
last_key = key_vals.keys.last
|
41
|
+
if arg.match(/^-.*/)
|
42
|
+
key_vals[arg] = true
|
43
|
+
elsif key_vals[last_key] == true
|
44
|
+
key_vals[last_key] = arg
|
45
|
+
else
|
46
|
+
key_vals[arg] = :data
|
47
|
+
end
|
48
|
+
}
|
49
|
+
key_vals
|
50
|
+
end
|
25
51
|
end
|
26
52
|
end
|
data/lib/arg0/version.rb
CHANGED
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require_relative '../lib/arg0.rb'
|
5
|
+
|
6
|
+
class TestArg0Console < Test::Unit::TestCase
|
7
|
+
def setup; end
|
8
|
+
def teardown; ARGV.clear; end
|
9
|
+
|
10
|
+
def test_switch_empty
|
11
|
+
assert_equal Arg0::Console.switch?('-h'), false
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_switch_on
|
15
|
+
ARGV.push '-h'
|
16
|
+
assert_equal Arg0::Console.switch?('-h'), true
|
17
|
+
assert_equal Arg0::Console.switch?(['-h', '--help']), true
|
18
|
+
assert_equal Arg0::Console.switch?(['-info', '-h', '--help']), true
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_switch_off
|
22
|
+
ARGV.push '--help'
|
23
|
+
assert_equal Arg0::Console.switch?('-h'), false
|
24
|
+
assert_equal Arg0::Console.switch?(['-h', '-help']), false
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_value_for
|
28
|
+
assert_equal Arg0::Console.value_for('-src'), []
|
29
|
+
ARGV.push '--log', 'a0.log', '-src', File.dirname(__FILE__), '-v', '-l', 'a2.log'
|
30
|
+
src01 = Arg0::Console.value_for('-src')
|
31
|
+
src02 = Arg0::Console.value_for(['-s', '-src', '--source'])
|
32
|
+
log = Arg0::Console.value_for(['-l', '--log'])
|
33
|
+
assert_equal src01, src02
|
34
|
+
assert_not_equal src01, log
|
35
|
+
assert_equal log, ['a0.log', 'a2.log']
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_values
|
39
|
+
ARGV.push '--log', 'a0.log', '-src', File.dirname(__FILE__), '-v', '-l', 'a2.log'
|
40
|
+
src01 = Arg0::Console.values('-src')
|
41
|
+
src02 = Arg0::Console.values(['-s', '-src', '--source'])
|
42
|
+
log = Arg0::Console.values(['-l', '--log'])
|
43
|
+
assert_equal src01, src02
|
44
|
+
assert_not_equal src01, log
|
45
|
+
assert_equal log, ['a0.log', 'a2.log']
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_value
|
49
|
+
assert_equal Arg0::Console.value(['-l', '--log']), nil
|
50
|
+
ARGV.push '--log', 'a0.log', '-src', File.dirname(__FILE__), '-v', '-l', 'a2.log'
|
51
|
+
assert_equal Arg0::Console.value(['-l', '--log']), 'a0.log'
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_keyring
|
55
|
+
assert_equal Arg0::Console.keyring, {}
|
56
|
+
ARGV.push '--log', 'a0.log', '-src', File.dirname(__FILE__), '-v', '-l', 'a2.log'
|
57
|
+
key_vals = Arg0::Console.keyring
|
58
|
+
assert_equal key_vals, {"--log"=>"a0.log", "-src"=>File.dirname(__FILE__), "-v"=>true, "-l"=>"a2.log"}
|
59
|
+
end
|
60
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arg0
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-26 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: It's just here to handle arguments provided to Application. Mainly optional
|
15
15
|
via switches. Currently handles plain-text Console arguments.
|
@@ -28,6 +28,7 @@ files:
|
|
28
28
|
- arg0.gemspec
|
29
29
|
- lib/arg0.rb
|
30
30
|
- lib/arg0/version.rb
|
31
|
+
- test/test_arg0_console.rb
|
31
32
|
homepage: https://github.com/abhishekkr/arg0
|
32
33
|
licenses: []
|
33
34
|
post_install_message:
|
@@ -52,4 +53,6 @@ rubygems_version: 1.8.24
|
|
52
53
|
signing_key:
|
53
54
|
specification_version: 3
|
54
55
|
summary: Arg0 is here to handle the ARGs passed to your application.
|
55
|
-
test_files:
|
56
|
+
test_files:
|
57
|
+
- test/test_arg0_console.rb
|
58
|
+
has_rdoc:
|