rarg 0.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.
Files changed (8) hide show
  1. data/lib/rarg.rb +112 -0
  2. data/license.txt +281 -0
  3. data/rakefile.rb +44 -0
  4. data/readme_en.txt +50 -0
  5. data/readme_ja.txt +54 -0
  6. data/setup.rb +1585 -0
  7. data/spec/main.rb +74 -0
  8. metadata +59 -0
@@ -0,0 +1,74 @@
1
+ require 'rarg'
2
+
3
+ describe RArg do
4
+
5
+ it 'raise ParseError without required argument' do
6
+ definition = proc do
7
+ require_arg :r1, :r2
8
+ end
9
+
10
+ proc{RArg.parse({}, &definition)}.should raise_error(RArg::Error)
11
+ proc{RArg.parse({:r1 => nil}, &definition)}.should raise_error(RArg::Error)
12
+ proc{RArg.parse({:r2 => nil}, &definition)}.should raise_error(RArg::Error)
13
+ proc{RArg.parse({:r1 => nil, :r2 => nil}, &definition)}.should_not raise_error
14
+ end
15
+
16
+ it 'set default arguments' do
17
+ definition = proc do
18
+ default_arg :d1, 255
19
+ end
20
+
21
+ re = RArg.parse({}, &definition)
22
+ re[:d1].should == 255
23
+ re = RArg.parse({:d1 => nil}, &definition)
24
+ re[:d1].should be_nil
25
+ end
26
+
27
+ it 'raise NameError if you try to get named argument that is not defined' do
28
+ re = RArg.parse({}) do
29
+ default_arg :d1
30
+ end
31
+
32
+ proc{re[:d1]}.should_not raise_error
33
+ proc{re[:unknown]}.should raise_error(RArg::Error)
34
+ end
35
+
36
+ it 'handle aliases' do
37
+ definition = proc do
38
+ default_arg :a0
39
+ alias_arg :a1, :a0
40
+ alias_arg :a2, :a0
41
+ end
42
+
43
+ re = RArg.parse({:a1 => 200}, &definition)
44
+ re[:a0].should == 200
45
+ proc{re[:a1]}.should raise_error(RArg::Error)
46
+
47
+ re = RArg.parse({:a2 => 200}, &definition)
48
+ re[:a0].should == 200
49
+ proc{re[:a2]}.should raise_error(RArg::Error)
50
+ end
51
+
52
+ it 'handle aliases and requirements in combination' do
53
+ definition = proc do
54
+ require_arg :r1
55
+ alias_arg :a1, :r1
56
+ end
57
+
58
+ proc{RArg.parse({:a1 => 200}, &definition)}.should_not raise_error
59
+ end
60
+
61
+ it "can't set alias from not existing name" do
62
+ definition = proc do
63
+ alias_arg :a1, :a0
64
+ default_arg :a0
65
+ end
66
+
67
+ proc{RArg.parse({}, &definition)}.should raise_error(RArg::Error)
68
+
69
+
70
+ end
71
+
72
+
73
+
74
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rarg
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.1"
5
+ platform: ruby
6
+ authors:
7
+ - Dice
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-01-31 00:00:00 +09:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: RArg is simple and small library for validating a Hash as named arguments (keyword arguments). It has three functions, requiring arguments, setting default arguments, and aliasing argument name.
17
+ email: tetradice.1011@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/rarg.rb
26
+ - spec/main.rb
27
+ - rakefile.rb
28
+ - setup.rb
29
+ - license.txt
30
+ - readme_en.txt
31
+ - readme_ja.txt
32
+ has_rdoc: false
33
+ homepage: http://rubyforge.org/projects/rarg/
34
+ post_install_message:
35
+ rdoc_options: []
36
+
37
+ require_paths:
38
+ - lib
39
+ required_ruby_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ required_rubygems_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ version:
51
+ requirements: []
52
+
53
+ rubyforge_project: rarg
54
+ rubygems_version: 1.2.0
55
+ signing_key:
56
+ specification_version: 2
57
+ summary: Small library for validating a Hash as named arguments
58
+ test_files: []
59
+