rcsvreader 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,10 +16,10 @@ module CSVReader
16
16
 
17
17
  class Reader
18
18
 
19
- def initialize(file, expected_header)
19
+ def initialize(file, mandatory_field)
20
20
  @file = file
21
- check_header(expected_header)
22
- @expected_header = expected_header
21
+ check_header(mandatory_field)
22
+ @mandatory_field = mandatory_field
23
23
  end
24
24
 
25
25
  # Iterates through the CSV file
@@ -42,14 +42,14 @@ module CSVReader
42
42
  return @header
43
43
  end
44
44
 
45
- def check_header(expected_header)
45
+ def check_header(mandatory_field)
46
46
  curr_header = header
47
- if (expected_header.empty?)
47
+ if (mandatory_field.empty?)
48
48
  raise InvalidHeaderException, "Expected header cannot be empty."
49
49
  end
50
- if (curr_header.size < expected_header.size ||
51
- (curr_header & expected_header).empty?)
52
- raise InvalidHeaderException, "Expected header #{expected_header} does not match or is not contained in the current header #{curr_header}."
50
+ if (curr_header.size < mandatory_field.size ||
51
+ (curr_header & mandatory_field).empty?)
52
+ raise InvalidHeaderException, "Expected header #{mandatory_field} does not match or is not contained in the current header #{curr_header}."
53
53
  end
54
54
  end
55
55
 
@@ -66,14 +66,14 @@ module CSVReader
66
66
  def parse_row(r)
67
67
  row = {}
68
68
  i = 0
69
- @expected_header.each do |column|
69
+ @mandatory_field.each do |column|
70
70
  row[column] = r[header.index(column)]
71
71
  i += 1
72
72
  end
73
73
  return row
74
74
  end
75
75
 
76
- private :parse_row, :header, :check_header
76
+ private :parse_row, :check_header
77
77
 
78
78
  end
79
79
 
@@ -2,4 +2,4 @@ name,email
2
2
  Daniel Quirino Oliveira,danielqo@gmail.com
3
3
  John Doe,doe@email.com
4
4
  ,anon@noemail.com
5
- Sem Email,
5
+ Sem Email,
@@ -0,0 +1,5 @@
1
+ "name","email"
2
+ Daniel Quirino Oliveira,danielqo@gmail.com
3
+ John Doe,doe@email.com
4
+ ,anon@noemail.com
5
+ Sem Email,
@@ -28,6 +28,12 @@ class TestCSVReader < Test::Unit::TestCase
28
28
  assert_equal expected_lines, lines
29
29
  end
30
30
 
31
+ def test_header
32
+ expected_header = ["name","email"]
33
+ reader = CSVReader::Reader.new("#{@data_dir}/foo.csv", expected_header)
34
+ assert_equal reader.header, expected_header
35
+ end
36
+
31
37
  def test_fetch_all_rows_and_all_columns_unsorted
32
38
  reader = CSVReader::Reader.new("#{@data_dir}/foo.csv", ["email","name"])
33
39
  expected_lines = 4
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcsvreader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 3
9
+ version: 0.1.3
5
10
  platform: ruby
6
11
  authors:
7
12
  - Daniel Quirino Oliveira
@@ -9,19 +14,22 @@ autorequire: name
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-23 00:00:00 -03:00
17
+ date: 2010-04-06 00:00:00 -03:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: ccsv
17
- type: :runtime
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
+ - 0
29
+ - 1
23
30
  version: "0.1"
24
- version:
31
+ type: :runtime
32
+ version_requirements: *id001
25
33
  description:
26
34
  email: daniel@nullability.org
27
35
  executables: []
@@ -45,21 +53,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
45
53
  requirements:
46
54
  - - ">="
47
55
  - !ruby/object:Gem::Version
56
+ segments:
57
+ - 0
48
58
  version: "0"
49
- version:
50
59
  required_rubygems_version: !ruby/object:Gem::Requirement
51
60
  requirements:
52
61
  - - ">="
53
62
  - !ruby/object:Gem::Version
63
+ segments:
64
+ - 0
54
65
  version: "0"
55
- version:
56
66
  requirements: []
57
67
 
58
68
  rubyforge_project:
59
- rubygems_version: 1.3.5
69
+ rubygems_version: 1.3.6
60
70
  signing_key:
61
71
  specification_version: 3
62
72
  summary: Yet another CSV parser with CSV header validation, based on CCSV (http://github.com/fauna/ccsv/).
63
73
  test_files:
64
74
  - test/data/foo.csv
75
+ - test/data/foo2.csv
65
76
  - test/test.rb