gnn-rblibs 0.0.1 → 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/README.rdoc +0 -11
- data/VERSION +1 -1
- data/gnn-rblibs.gemspec +5 -5
- data/lib/getopt.rb +7 -3
- data/spec/getopt_spec.rb +194 -0
- metadata +22 -11
- data/spec/gnn-rblibs_spec.rb +0 -7
data/README.rdoc
CHANGED
@@ -4,17 +4,6 @@ Some Ruby tweaks.
|
|
4
4
|
|
5
5
|
== Installation
|
6
6
|
|
7
|
-
First, make your gem source gemcutter by
|
8
|
-
|
9
|
-
gem install gemcutter
|
10
|
-
gem tumble
|
11
|
-
|
12
|
-
or
|
13
|
-
|
14
|
-
gem sources -a http://gemcutter.org
|
15
|
-
|
16
|
-
then
|
17
|
-
|
18
7
|
gem install gnn-rblibs
|
19
8
|
|
20
9
|
== Note on Patches/Pull Requests
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/gnn-rblibs.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{gnn-rblibs}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["tarao"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2010-05-07}
|
13
13
|
s.description = %q{Some Ruby tweaks for file operations, commandline parsers, etc.}
|
14
14
|
s.email = %q{tarao.gnn@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -37,18 +37,18 @@ Gem::Specification.new do |s|
|
|
37
37
|
"lib/term/countdown.rb",
|
38
38
|
"lib/webrick/single_thread_server.rb",
|
39
39
|
"lib/www/mechanize/get.rb",
|
40
|
-
"spec/
|
40
|
+
"spec/getopt_spec.rb",
|
41
41
|
"spec/spec.opts",
|
42
42
|
"spec/spec_helper.rb"
|
43
43
|
]
|
44
44
|
s.homepage = %q{http://github.com/tarao/gnn-rblibs}
|
45
45
|
s.rdoc_options = ["--charset=UTF-8"]
|
46
46
|
s.require_paths = ["lib"]
|
47
|
-
s.rubygems_version = %q{1.3.
|
47
|
+
s.rubygems_version = %q{1.3.6}
|
48
48
|
s.summary = %q{Some Ruby tweaks}
|
49
49
|
s.test_files = [
|
50
50
|
"spec/spec_helper.rb",
|
51
|
-
"spec/
|
51
|
+
"spec/getopt_spec.rb"
|
52
52
|
]
|
53
53
|
|
54
54
|
if s.respond_to? :specification_version then
|
data/lib/getopt.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
class GetOpt
|
2
2
|
def self.escape(str, quote=true)
|
3
3
|
str = str.to_s
|
4
|
-
return
|
5
|
-
str = str.
|
6
|
-
|
4
|
+
return "''" if str.empty?
|
5
|
+
str = str.dup
|
6
|
+
|
7
|
+
str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1")
|
8
|
+
str.gsub!(/\n/, "'\n'")
|
9
|
+
|
10
|
+
return str
|
7
11
|
end
|
8
12
|
|
9
13
|
attr_accessor :args, :parsed, :rest, :parser
|
data/spec/getopt_spec.rb
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/getopt')
|
3
|
+
|
4
|
+
describe GetOpt, 'when neither argument nor spec is given' do
|
5
|
+
before do
|
6
|
+
@argv = GetOpt.new([])
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be empty' do
|
10
|
+
@argv.args.should be_empty
|
11
|
+
@argv.rest.should be_empty
|
12
|
+
@argv[:arg].should be_nil
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
@argv = nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe GetOpt, 'when bool arguments are given' do
|
21
|
+
before do
|
22
|
+
@argv = GetOpt.new(%w'
|
23
|
+
--hoge=true
|
24
|
+
--foo
|
25
|
+
--no-bar
|
26
|
+
--tarao=3
|
27
|
+
-xyz
|
28
|
+
-vvv
|
29
|
+
', %w'
|
30
|
+
hoge
|
31
|
+
foo
|
32
|
+
bar
|
33
|
+
tarao
|
34
|
+
x|xflag
|
35
|
+
y|yflag
|
36
|
+
v|vlevel
|
37
|
+
')
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should be accessible by string or symbol' do
|
41
|
+
@argv[:hoge].should === @argv['hoge']
|
42
|
+
@argv[:foo].should === @argv['foo']
|
43
|
+
@argv[:bar].should === @argv['bar']
|
44
|
+
@argv[:tarao].should === @argv['tarao']
|
45
|
+
@argv[:xflag].should === @argv['xflag']
|
46
|
+
@argv[:yflag].should === @argv['yflag']
|
47
|
+
@argv[:vlevel].should === @argv['vlevel']
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should have flags on' do
|
51
|
+
@argv[:hoge].should == true
|
52
|
+
@argv[:foo].should == true
|
53
|
+
@argv[:xflag].should == true
|
54
|
+
@argv[:yflag].should == true
|
55
|
+
@argv[:vlevel].should_not be_nil
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should accept value as boolean' do
|
59
|
+
@argv[:tarao].should == true
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should have flags off' do
|
63
|
+
@argv[:bar].should === false
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should ignore flags not in the spec' do
|
67
|
+
@argv[:z].should be_nil
|
68
|
+
@argv[:zflag].should be_nil
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should store unparsed arguments' do
|
72
|
+
@argv.args[0].should == '-z'
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'should increment the flag' do
|
76
|
+
@argv[:vlevel].should == 3
|
77
|
+
end
|
78
|
+
|
79
|
+
after do
|
80
|
+
@argv = nil
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe GetOpt, 'when integer arguments are given' do
|
85
|
+
before do
|
86
|
+
@argv = GetOpt.new(%w'
|
87
|
+
--hoge=4
|
88
|
+
--foo=-5
|
89
|
+
-b 100
|
90
|
+
--tarao=tarao
|
91
|
+
-xy
|
92
|
+
', %w'
|
93
|
+
hoge=i
|
94
|
+
foo=i
|
95
|
+
b|bar=i
|
96
|
+
tarao=i
|
97
|
+
x|xflag
|
98
|
+
y|yvalue=i
|
99
|
+
')
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should accept values' do
|
103
|
+
@argv[:hoge].should == 4
|
104
|
+
@argv[:foo].should == -5
|
105
|
+
@argv[:bar].should == 100
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'should accept value as integer' do
|
109
|
+
@argv[:tarao].should == 0
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'should not accept integer values as a flag' do
|
113
|
+
@argv[:yvalue].should be_nil
|
114
|
+
@argv.args[0].should == '-y'
|
115
|
+
end
|
116
|
+
|
117
|
+
after do
|
118
|
+
@argv = nil
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
describe GetOpt, 'when string arguments are given' do
|
123
|
+
before do
|
124
|
+
@argv = GetOpt.new(%w'
|
125
|
+
--hoge=hoge
|
126
|
+
-f foo
|
127
|
+
--bar=true
|
128
|
+
--tarao=3
|
129
|
+
-xy
|
130
|
+
', %w'
|
131
|
+
hoge=s
|
132
|
+
f|foo=s
|
133
|
+
bar=s
|
134
|
+
tarao=s
|
135
|
+
x|xflag
|
136
|
+
y|yvalue=s
|
137
|
+
')
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'should accept values' do
|
141
|
+
@argv[:hoge].should == 'hoge'
|
142
|
+
@argv[:foo].should == 'foo'
|
143
|
+
@argv[:bar].should == 'true'
|
144
|
+
@argv[:tarao].should == '3'
|
145
|
+
end
|
146
|
+
|
147
|
+
it 'should not accept string values as a flag' do
|
148
|
+
@argv[:yvalue].should be_nil
|
149
|
+
@argv.args[0].should == '-y'
|
150
|
+
end
|
151
|
+
|
152
|
+
after do
|
153
|
+
@argv = nil
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe GetOpt, 'when positional arguments are given' do
|
158
|
+
before do
|
159
|
+
@argv = GetOpt.new(%w'
|
160
|
+
-xyw
|
161
|
+
--
|
162
|
+
file1
|
163
|
+
file2
|
164
|
+
-x false
|
165
|
+
-z
|
166
|
+
', %w'
|
167
|
+
x|xflag
|
168
|
+
y|yflag
|
169
|
+
z|zflag
|
170
|
+
')
|
171
|
+
end
|
172
|
+
|
173
|
+
it 'should accept normal arguments' do
|
174
|
+
@argv[:xflag].should == true
|
175
|
+
@argv[:yflag].should == true
|
176
|
+
@argv[:zflag].should be_nil
|
177
|
+
end
|
178
|
+
|
179
|
+
it 'should store unparsed arguments' do
|
180
|
+
@argv.args[0].should == '-w'
|
181
|
+
end
|
182
|
+
|
183
|
+
it 'should accept positional arguments' do
|
184
|
+
@argv.rest[0].should == 'file1'
|
185
|
+
@argv.rest[1].should == 'file2'
|
186
|
+
@argv.rest[2].should == '-x'
|
187
|
+
@argv.rest[3].should == 'false'
|
188
|
+
@argv.rest[4].should == '-z'
|
189
|
+
end
|
190
|
+
|
191
|
+
after do
|
192
|
+
@argv = nil
|
193
|
+
end
|
194
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnn-rblibs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- tarao
|
@@ -9,19 +14,23 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-05-07 00:00:00 +00:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: rspec
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 2
|
30
|
+
- 9
|
23
31
|
version: 1.2.9
|
24
|
-
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
25
34
|
description: Some Ruby tweaks for file operations, commandline parsers, etc.
|
26
35
|
email: tarao.gnn@gmail.com
|
27
36
|
executables: []
|
@@ -52,7 +61,7 @@ files:
|
|
52
61
|
- lib/term/countdown.rb
|
53
62
|
- lib/webrick/single_thread_server.rb
|
54
63
|
- lib/www/mechanize/get.rb
|
55
|
-
- spec/
|
64
|
+
- spec/getopt_spec.rb
|
56
65
|
- spec/spec.opts
|
57
66
|
- spec/spec_helper.rb
|
58
67
|
has_rdoc: true
|
@@ -68,21 +77,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
68
77
|
requirements:
|
69
78
|
- - ">="
|
70
79
|
- !ruby/object:Gem::Version
|
80
|
+
segments:
|
81
|
+
- 0
|
71
82
|
version: "0"
|
72
|
-
version:
|
73
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
84
|
requirements:
|
75
85
|
- - ">="
|
76
86
|
- !ruby/object:Gem::Version
|
87
|
+
segments:
|
88
|
+
- 0
|
77
89
|
version: "0"
|
78
|
-
version:
|
79
90
|
requirements: []
|
80
91
|
|
81
92
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.3.
|
93
|
+
rubygems_version: 1.3.6
|
83
94
|
signing_key:
|
84
95
|
specification_version: 3
|
85
96
|
summary: Some Ruby tweaks
|
86
97
|
test_files:
|
87
98
|
- spec/spec_helper.rb
|
88
|
-
- spec/
|
99
|
+
- spec/getopt_spec.rb
|