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 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