hippie_csv 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 178191d199c6e5318a8377be2852354d1371537e
4
- data.tar.gz: cd17b3aa8028743e6b531c67ba36822d2a31a4a8
3
+ metadata.gz: fdb2ee83cfaedb06e0335c4f33c8a022b88dea3e
4
+ data.tar.gz: edfcbcf63e127841b3e6ac9906b38330403ce20e
5
5
  SHA512:
6
- metadata.gz: 86f07865e61f68ad07c4811d1fdfc7db210f476f9042d7cdac2cea2aa0da6de44c4fdb589d8fa0e35245ed90aec4c7f5df2c5dfeb98dcf7e8d458c47b9398b42
7
- data.tar.gz: ec95093f3a6e3c060b8706b76538d050040f91a4307888e3ff2a05544fa29f0897375c6c0cdde88f8b4c91dfdf68ba83378a2aeccf7b8cbf79101c11ebc4f363
6
+ metadata.gz: 40bb630118a2e7ab90ea2e0a4d1627353bcc296296665d34ce0af53286aab4cb11166ffb927ff12b941109146b9969925df8ab59c4cda87ad6fb396ec747e5b6
7
+ data.tar.gz: 1f748d3bd1e6900c402aba780daefbb07f02dfaef0912ac4f986058a999f8b420614b0e5d737e3e5c133d23f2bae560932fab95ad60865daa91860f4a56f4e5f
@@ -31,7 +31,7 @@ module HippieCSV
31
31
 
32
32
  def maybe_parse(string)
33
33
  QUOTE_CHARACTERS.find do |quote_character|
34
- [string, tolerate_escaping(string, quote_character)].find do |string_to_parse|
34
+ [string, tolerate_escaping(string, quote_character), dump_quotes(string, quote_character)].find do |string_to_parse|
35
35
  rescuing_malformed do
36
36
  return parse_csv(string_to_parse.squeeze("\n").strip, quote_character)
37
37
  end
@@ -47,6 +47,10 @@ module HippieCSV
47
47
  )
48
48
  end
49
49
 
50
+ def dump_quotes(string, quote_character)
51
+ string.gsub(quote_character, "")
52
+ end
53
+
50
54
  def rescuing_malformed
51
55
  begin; yield; rescue CSV::MalformedCSVError; end
52
56
  end
@@ -1,3 +1,3 @@
1
1
  module HippieCSV
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -0,0 +1,2 @@
1
+ "Email","ID","Name"
2
+ "test@example.com","123","James "Jimmy" Doe"
@@ -3,7 +3,7 @@ require "spec_helper"
3
3
  describe HippieCSV do
4
4
 
5
5
  it "defines a version" do
6
- expect(HippieCSV::VERSION).to eq("0.0.9")
6
+ expect(HippieCSV::VERSION).to eq("0.0.10")
7
7
  end
8
8
 
9
9
  end
@@ -78,6 +78,15 @@ describe HippieCSV do
78
78
  expect(import[0].count).to eq(24)
79
79
  end
80
80
 
81
+ it "works with unescaped internal quotes" do
82
+ path = fixture_path(:internal_quotes)
83
+ expect { CSV.read(path) }.to raise_error(CSV::MalformedCSVError)
84
+
85
+ import = subject.read(path)
86
+ expect(import[1][1]).to eq("123")
87
+ expect(import[1][2]).to eq("James Jimmy Doe")
88
+ end
89
+
81
90
  it "works with escaped quotes" do
82
91
  path = fixture_path(:escaped_quotes)
83
92
 
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hippie_csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen O'Brien
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-10 00:00:00.000000000 Z
11
+ date: 2015-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
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: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rchardet
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description:
@@ -87,8 +87,8 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - .gitignore
91
- - .rspec
90
+ - ".gitignore"
91
+ - ".rspec"
92
92
  - Gemfile
93
93
  - LICENSE.txt
94
94
  - README.md
@@ -107,6 +107,7 @@ files:
107
107
  - spec/fixtures/escaped_quotes.csv
108
108
  - spec/fixtures/escaped_quotes_semicolons.csv
109
109
  - spec/fixtures/excel.csv
110
+ - spec/fixtures/internal_quotes.csv
110
111
  - spec/fixtures/malformed.csv
111
112
  - spec/fixtures/never_ordered.csv
112
113
  - spec/fixtures/normal.csv
@@ -127,17 +128,17 @@ require_paths:
127
128
  - lib
128
129
  required_ruby_version: !ruby/object:Gem::Requirement
129
130
  requirements:
130
- - - '>='
131
+ - - ">="
131
132
  - !ruby/object:Gem::Version
132
133
  version: '0'
133
134
  required_rubygems_version: !ruby/object:Gem::Requirement
134
135
  requirements:
135
- - - '>='
136
+ - - ">="
136
137
  - !ruby/object:Gem::Version
137
138
  version: '0'
138
139
  requirements: []
139
140
  rubyforge_project:
140
- rubygems_version: 2.0.14
141
+ rubygems_version: 2.2.3
141
142
  signing_key:
142
143
  specification_version: 4
143
144
  summary: Tolerant, liberal CSV parsing
@@ -150,6 +151,7 @@ test_files:
150
151
  - spec/fixtures/escaped_quotes.csv
151
152
  - spec/fixtures/escaped_quotes_semicolons.csv
152
153
  - spec/fixtures/excel.csv
154
+ - spec/fixtures/internal_quotes.csv
153
155
  - spec/fixtures/malformed.csv
154
156
  - spec/fixtures/never_ordered.csv
155
157
  - spec/fixtures/normal.csv
@@ -160,3 +162,4 @@ test_files:
160
162
  - spec/hippie_csv/version_spec.rb
161
163
  - spec/hippie_csv_spec.rb
162
164
  - spec/spec_helper.rb
165
+ has_rdoc: