gnn-rblibs 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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
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.1"
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{2009-11-28}
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/gnn-rblibs_spec.rb",
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.5}
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/gnn-rblibs_spec.rb"
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 str unless str.match(/[\\\"\'\s]/)
5
- str = str.gsub(/\\/, '\\\\').gsub(/\"/, '\\\"')
6
- return quote ? '"'+str+'"' : str
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
@@ -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
- version: 0.0.1
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: 2009-11-28 00:00:00 +00:00
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
- type: :development
18
- version_requirement:
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
- version:
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/gnn-rblibs_spec.rb
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.5
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/gnn-rblibs_spec.rb
99
+ - spec/getopt_spec.rb
@@ -1,7 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "GnnRblibs" do
4
- it "fails" do
5
- fail "hey buddy, you should probably rename this file and start specing for real"
6
- end
7
- end