rcsvreader 0.1.2 → 0.1.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.
@@ -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