simplecsv 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/Manifest.txt +4 -0
- data/README.txt +1 -1
- data/Rakefile +1 -1
- data/lib/simplecsv/extension.rb +23 -0
- data/lib/simplecsv/version.rb +2 -2
- data/test/data/01.csv +1 -0
- data/test/data/02.csv +2 -0
- data/test/data/03.csv +5 -0
- data/test/simplecsv/simplecsv_test.rb +63 -0
- metadata +6 -2
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -11,6 +11,10 @@ ext/simplecsv/extconf.rb
|
|
11
11
|
ext/simplecsv/rb_simplecsv.c
|
12
12
|
ext/simplecsv/rb_simplecsv.h
|
13
13
|
lib/simplecsv.rb
|
14
|
+
lib/simplecsv/extension.rb
|
14
15
|
lib/simplecsv/version.rb
|
15
16
|
setup.rb
|
17
|
+
test/data/01.csv
|
18
|
+
test/data/02.csv
|
19
|
+
test/data/03.csv
|
16
20
|
test/simplecsv/simplecsv_test.rb
|
data/README.txt
CHANGED
data/Rakefile
CHANGED
@@ -52,7 +52,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
52
52
|
#p.extra_deps - An array of rubygem dependencies.
|
53
53
|
#p.spec_extras - A hash of extra values to set in the gemspec.
|
54
54
|
|
55
|
-
p.rdoc_pattern = /^(bin|ext)|txt$/
|
55
|
+
p.rdoc_pattern = /^(lib|bin|ext)|txt$/
|
56
56
|
p.spec_extras = {
|
57
57
|
:extensions => ['ext/simplecsv/extconf.rb']
|
58
58
|
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class SimpleCSV
|
2
|
+
# All methods of module SimpleCSV::Extension are
|
3
|
+
# extended & included by SimpleCSV.
|
4
|
+
# For example, you can use SimpleCSV.parse_file SimpleCSV#parse_file.
|
5
|
+
module Extension
|
6
|
+
# Parse csv file.
|
7
|
+
# See SimpleCSV.parse for details.
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# [file_name] <code>String</code> : csv file name.
|
11
|
+
# [options] <code>Integer</code> : parser options.
|
12
|
+
# [row] <code>Array</code> of <code>String</code>s : parsed data.
|
13
|
+
def parse_file(file_name, options = nil, &block)
|
14
|
+
File.foreach(file_name, options) do |line|
|
15
|
+
parse(line, &block)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
extend(Extension)
|
21
|
+
include(Extension)
|
22
|
+
end
|
23
|
+
|
data/lib/simplecsv/version.rb
CHANGED
data/test/data/01.csv
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0, 1, 2, 3
|
data/test/data/02.csv
ADDED
@@ -1,4 +1,5 @@
|
|
1
1
|
$:.unshift(File.join(File.dirname(__FILE__), '..', '..', 'ext', 'simplecsv'))
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
|
2
3
|
|
3
4
|
require 'simplecsv'
|
4
5
|
require 'test/unit'
|
@@ -368,4 +369,66 @@ _CSV_
|
|
368
369
|
assert_equal ["L", "c"], row
|
369
370
|
end
|
370
371
|
end
|
372
|
+
|
373
|
+
class DefaultParser < SimpleCSV
|
374
|
+
def initialize
|
375
|
+
@row = []
|
376
|
+
end
|
377
|
+
|
378
|
+
def on_field(str, pr)
|
379
|
+
@row << str
|
380
|
+
end
|
381
|
+
|
382
|
+
def on_row(str, pr)
|
383
|
+
pr.call(@row)
|
384
|
+
@row = []
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
def test_parse_file
|
389
|
+
csv_file = File.join(data_path, '01.csv')
|
390
|
+
SimpleCSV.parse_file(csv_file) do |row|
|
391
|
+
assert_equal ["0", "1", "2", "3"], row
|
392
|
+
end
|
393
|
+
|
394
|
+
simplecsv = SimpleCSV.new
|
395
|
+
simplecsv.parse_file(csv_file) do |row|
|
396
|
+
assert_equal ["0", "1", "2", "3"], row
|
397
|
+
end
|
398
|
+
|
399
|
+
DefaultParser.parse_file(csv_file) do |row|
|
400
|
+
assert_equal ["0", "1", "2", "3"], row
|
401
|
+
end
|
402
|
+
|
403
|
+
csv_file = File.join(data_path, '02.csv')
|
404
|
+
rows = []
|
405
|
+
SimpleCSV.parse_file(csv_file) do |row|
|
406
|
+
rows << row
|
407
|
+
end
|
408
|
+
assert_equal [ ["ab", "cde", "fg"], ["hijk", "lmn"] ], rows
|
409
|
+
|
410
|
+
rows = []
|
411
|
+
DefaultParser.parse_file(csv_file) do |row|
|
412
|
+
rows << row
|
413
|
+
end
|
414
|
+
assert_equal [ ["ab", "cde", "fg"], ["hijk", "lmn"] ], rows
|
415
|
+
|
416
|
+
csv_file = File.join(data_path, '03.csv')
|
417
|
+
rows = []
|
418
|
+
SimpleCSV.parse_file(csv_file) do |row|
|
419
|
+
rows << row
|
420
|
+
end
|
421
|
+
assert_equal [ ["1"], ["5"] ], rows
|
422
|
+
|
423
|
+
rows = []
|
424
|
+
DefaultParser.parse_file(csv_file) do |row|
|
425
|
+
rows << row
|
426
|
+
end
|
427
|
+
assert_equal [ ["1"], ["5"] ], rows
|
428
|
+
end
|
429
|
+
|
430
|
+
private
|
431
|
+
def data_path
|
432
|
+
File.join(File.dirname(__FILE__), '..', 'data')
|
433
|
+
end
|
371
434
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: simplecsv
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.1.4
|
7
|
+
date: 2007-04-01 00:00:00 +09:00
|
8
8
|
summary: SimpleCSV privides simple csv reading/writing api.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -42,8 +42,12 @@ files:
|
|
42
42
|
- ext/simplecsv/rb_simplecsv.c
|
43
43
|
- ext/simplecsv/rb_simplecsv.h
|
44
44
|
- lib/simplecsv.rb
|
45
|
+
- lib/simplecsv/extension.rb
|
45
46
|
- lib/simplecsv/version.rb
|
46
47
|
- setup.rb
|
48
|
+
- test/data/01.csv
|
49
|
+
- test/data/02.csv
|
50
|
+
- test/data/03.csv
|
47
51
|
- test/simplecsv/simplecsv_test.rb
|
48
52
|
test_files:
|
49
53
|
- test/simplecsv/simplecsv_test.rb
|