parshap-csv_parser 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: eef7f6454e4f6a4116992a8c116e8d6da283d1ed
4
- data.tar.gz: aab7fb19f64d06c063ca8c02c1b9cd7f4600f69c
5
- SHA512:
6
- metadata.gz: 47b614785df643c67a326c3a1af4e37df58b53b195ac4f7d7fa07caf525b9bdca6c098702aa482493f174810e868cbc722286d14eac3ac1355f0d53102027dae
7
- data.tar.gz: 324981f48ac8bc4efb8eee876cb341d58fbd225df62fd49f451d1632a0176dcca264aa20f353bf3678137ec5eff4590d53c6a023adc38e65e86a7d3437d0ed8e
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZWQzOGU4OTc4MjkxMWY3YmE5YWUzMTk1NDQyMjZlODZiMjU4YjBiMw==
5
+ data.tar.gz: !binary |-
6
+ Mzc3NmMzYTQ1ZDJhNjU3NTRlNzY3ZTYwYzQ3ZjhmNDA4NDAzYTAyMg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YWVhMjMwN2U4MmVhNGU5Njg0NzVmNDdjMDQ0YTJjMDBkYTU0ZGE2ZDE2Mjlh
10
+ NDUyNWE3YWE4ZWUxYmVhMmEwYThhMTY4MTEzZDE0MmYzYzc2ZjM0ZmVjMWM0
11
+ NWI0NzY2MzM3MjA1ZmZhYzVkMGUzODNlYzg1OGQwNGEyZDE2Mjc=
12
+ data.tar.gz: !binary |-
13
+ YmRkMTYwOTE1OTMyMjQ4OTE1Zjg4YzA4MmJiZmFmMDAzNjQ3MjQ3NTdiZjNk
14
+ YzE2YTI1ZGM1YmY3Nzk1NDVkYWVkMTZlZGM4OWEwYTk2M2UzMzNmNGI2MjNm
15
+ Y2Q0Yzc0ZWYzM2JjMzM1NGYzZWRmZGFiMDFlMTczNzY2MzQ4YWY=
@@ -77,7 +77,12 @@ class CSVParser
77
77
 
78
78
  # Does the parser criteria match the column?
79
79
  def match?(parser, val, key)
80
- parser[:criteria] === key
80
+ case criteria = parser[:criteria]
81
+ when Symbol
82
+ send criteria, key
83
+ else
84
+ criteria === key
85
+ end
81
86
  end
82
87
 
83
88
  # Default hash values to use for each row
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "parshap-csv_parser"
3
- spec.version = "1.0.1"
3
+ spec.version = "1.1.0"
4
4
  spec.authors = ["Parsha Pourkhomami"]
5
5
  spec.email = ["parshap+gem@gmail.com"]
6
6
  spec.summary = "High-level CSV parser"
data/test.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "test/unit"
2
2
  require "csv"
3
- require_relative "csv_parser"
3
+ require_relative "lib/csv_parser"
4
4
 
5
5
  class SimpleParser < CSVParser
6
6
  attr_reader :called
@@ -34,6 +34,16 @@ class RegexpParser < CSVParser
34
34
  end
35
35
  end
36
36
 
37
+ class MethodParser < CSVParser
38
+ parse :foo do |val, key|
39
+ self[key] = val
40
+ end
41
+
42
+ def foo(key)
43
+ true
44
+ end
45
+ end
46
+
37
47
  class CSVParserTest < Test::Unit::TestCase
38
48
  def csv
39
49
  CSV.new <<-EOF
@@ -92,4 +102,11 @@ class CSVParserTest < Test::Unit::TestCase
92
102
  assert_equal({ "first" => "parsha" }, array[0])
93
103
  assert_equal({ "first" => "hey" }, array[1])
94
104
  end
105
+
106
+ def test_method_criteria
107
+ array = MethodParser.new(csv).to_a
108
+ assert_equal 2, array.length
109
+ assert_equal({ "first" => "parsha", "last" => "pourkhomami" }, array[0])
110
+ assert_equal({ "first" => "hey", "last" => "you" }, array[1])
111
+ end
95
112
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parshap-csv_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parsha Pourkhomami
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-02 00:00:00.000000000 Z
11
+ date: 2014-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  description:
@@ -47,19 +47,20 @@ require_paths:
47
47
  - lib
48
48
  required_ruby_version: !ruby/object:Gem::Requirement
49
49
  requirements:
50
- - - '>='
50
+ - - ! '>='
51
51
  - !ruby/object:Gem::Version
52
52
  version: '0'
53
53
  required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - '>='
55
+ - - ! '>='
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  requirements: []
59
59
  rubyforge_project:
60
- rubygems_version: 2.0.3
60
+ rubygems_version: 2.0.6
61
61
  signing_key:
62
62
  specification_version: 4
63
63
  summary: High-level CSV parser
64
64
  test_files:
65
65
  - test.rb
66
+ has_rdoc: