nesquikcsv 0.1.4 → 0.1.6

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: d271c73f54f112004ff11719fbff3c690e18bc55
4
- data.tar.gz: 5f87efeb1673e2ff5d99bc247d1fa92f630dbbf3
3
+ metadata.gz: f62196f1f07dda1c15f055d35d2365e14639970c
4
+ data.tar.gz: 65db292be2f338fd618f4f4913836db4bd234b8b
5
5
  SHA512:
6
- metadata.gz: 5cc8cb08eae5eed24b3c5114194b784ab81e966c153b640fa1c4d16a773cddbb9ed4e2be18487b97bb85da96c3c41305717b0ae5133c8dbdef4d9a9d373e85f7
7
- data.tar.gz: b25355aac02167cb2a9eda62896579a3e209e7ec69eee6c1b9c8f4b0f24c90e175e87b04e6b685b742b46c74692c3e17e1b266e31d331e6643d0120237fd9512
6
+ metadata.gz: d78c9f1e29deae792d27c1acd1d42936ed9bba67589bbad2f85abfd8457b203e86d81d1e18194c313e108332fecf3da00f6c1241ec26ab506124ca384223ca51
7
+ data.tar.gz: ed929dd9971a1ebe1e31debc5368aa4c80245a917588a74149a90499f106f5034b88f33bb7e2f64fc39184a13a5e9a9d9a96eb1f04f2758cbedc2e913f3c5153
data/README.md CHANGED
@@ -37,10 +37,11 @@ Parse single line
37
37
  Parse string in array of arrays
38
38
 
39
39
  # Read file contents into string
40
- csv_data = "one,two,three"
40
+ csv_data = "one,two,three\nfour,five"
41
41
  # Defaults to UTF-8 encoding
42
42
  rows = NesquikCSV.parse(csv_data)
43
- => ["one", "two", "three"]
43
+ => [["one", "two", "three"], ["four", "five"]]
44
44
  # Or explicitly
45
45
  rows = NesquikCSV.parse(csv_data, "UTF-8")
46
- => ["one", "two", "three"]
46
+ => [["one", "two", "three"], ["four", "five"]]
47
+
data/Rakefile CHANGED
@@ -3,8 +3,12 @@ require "bundler/gem_tasks"
3
3
 
4
4
  spec = Gem::Specification.load('nesquikcsv.gemspec')
5
5
 
6
- require 'rake/extensiontask'
7
- Rake::ExtensionTask.new('csv_parser', spec)
6
+ if RUBY_PLATFORM =~ /java/
7
+ # TODO
8
+ else
9
+ require 'rake/extensiontask'
10
+ Rake::ExtensionTask.new('csv_parser', spec)
11
+ end
8
12
 
9
13
  task :console do
10
14
  require 'irb'
@@ -12,4 +12,4 @@ end
12
12
  # $CFLAGS += " -march=i686"
13
13
  #end
14
14
 
15
- create_makefile(extension_name)
15
+ create_makefile(extension_name)
@@ -1,3 +1,3 @@
1
1
  class NesquikCSV
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.6"
3
3
  end
data/lib/nesquikcsv.rb CHANGED
@@ -1,4 +1,8 @@
1
- require 'csv_parser'
1
+ if RUBY_PLATFORM =~ /java/
2
+ require 'csv'
3
+ else
4
+ require 'csv_parser'
5
+ end
2
6
  require 'stringio'
3
7
 
4
8
  # Fast CSV parser using native code
@@ -52,7 +56,11 @@ class NesquikCSV
52
56
  end
53
57
 
54
58
  def self.parse_line(line, encoding="UTF-8")
55
- CsvParser.parse_line(line, encoding)
59
+ if RUBY_PLATFORM =~ /java/
60
+ CSV.parse_line(line.force_encoding(encoding))
61
+ else
62
+ CsvParser.parse_line(line, encoding)
63
+ end
56
64
  end
57
65
 
58
66
  # Create new NesquikCSV wrapping the specified IO object
@@ -88,7 +96,11 @@ class NesquikCSV
88
96
  # Read next line from the wrapped IO and return as array or nil at EOF
89
97
  def shift(encoding='UTF-8')
90
98
  if line = get_line_with_quotes
91
- CsvParser.parse_line(line, encoding)
99
+ if RUBY_PLATFORM =~ /java/
100
+ CSV.parse_line(line.force_encoding(encoding))
101
+ else
102
+ CsvParser.parse_line(line, encoding)
103
+ end
92
104
  else
93
105
  nil
94
106
  end
data/nesquikcsv.gemspec CHANGED
@@ -15,7 +15,11 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = NesquikCSV::VERSION
17
17
 
18
- gem.extensions = ['ext/csv_parser/extconf.rb']
18
+ if RUBY_PLATFORM =~ /java/
19
+ gem.platform = "java"
20
+ else
21
+ gem.extensions = ['ext/csv_parser/extconf.rb']
22
+ end
19
23
 
20
24
  gem.add_development_dependency "test-unit"
21
25
  gem.add_development_dependency "rake-compiler"
@@ -3,137 +3,144 @@
3
3
  # Tests copied from faster_csv by James Edward Gray II
4
4
  #
5
5
 
6
- require 'test/unit'
7
- require 'nesquikcsv'
6
+ if RUBY_DESCRIPTION =~ /jruby/
7
+ # TODO
8
+ # These tests dont make sense for jruby since there's no Java extension
9
+ else
8
10
 
9
- #
10
- # Following tests are my interpretation of the
11
- # {CSV RCF}[http://www.ietf.org/rfc/rfc4180.txt]. I only deviate from that
12
- # document in one place (intentionally) and that is to make the default row
13
- # separator <tt>$/</tt>.
14
- #
15
- class TestCSVParsing < Test::Unit::TestCase
11
+ require 'test/unit'
12
+ require 'nesquikcsv'
16
13
 
17
- def test_mastering_regex_example
18
- ex = %Q{Ten Thousand,10000, 2710 ,,"10,000","It's ""10 Grand"", baby",10K}
19
- assert_equal( [ "Ten Thousand", "10000", " 2710 ", nil, "10,000",
20
- "It's \"10 Grand\", baby", "10K" ],
21
- CsvParser.parse_line(ex, "UTF-8") )
22
- end
14
+ #
15
+ # Following tests are my interpretation of the
16
+ # {CSV RCF}[http://www.ietf.org/rfc/rfc4180.txt]. I only deviate from that
17
+ # document in one place (intentionally) and that is to make the default row
18
+ # separator <tt>$/</tt>.
19
+ #
20
+ class TestCSVParsing < Test::Unit::TestCase
23
21
 
24
- # Pulled from: http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/test/csv/test_csv.rb?rev=1.12.2.2;content-type=text%2Fplain
25
- def test_std_lib_csv
26
- [ ["\t", ["\t"]],
27
- ["foo,\"\"\"\"\"\",baz", ["foo", "\"\"", "baz"]],
28
- ["foo,\"\"\"bar\"\"\",baz", ["foo", "\"bar\"", "baz"]],
29
- ["\"\"\"\n\",\"\"\"\n\"", ["\"\n", "\"\n"]],
30
- ["foo,\"\r\n\",baz", ["foo", "\r\n", "baz"]],
31
- ["\"\"", [""]],
32
- ["foo,\"\"\"\",baz", ["foo", "\"", "baz"]],
33
- ["foo,\"\r.\n\",baz", ["foo", "\r.\n", "baz"]],
34
- ["foo,\"\r\",baz", ["foo", "\r", "baz"]],
35
- ["foo,\"\",baz", ["foo", "", "baz"]],
36
- ["\",\"", [","]],
37
- ["foo", ["foo"]],
38
- [",,", [nil, nil, nil]],
39
- [",", [nil, nil]],
40
- ["foo,\"\n\",baz", ["foo", "\n", "baz"]],
41
- ["foo,,baz", ["foo", nil, "baz"]],
42
- ["\"\"\"\r\",\"\"\"\r\"", ["\"\r", "\"\r"]],
43
- ["\",\",\",\"", [",", ","]],
44
- ["foo,bar,", ["foo", "bar", nil]],
45
- [",foo,bar", [nil, "foo", "bar"]],
46
- ["foo,bar", ["foo", "bar"]],
47
- [";", [";"]],
48
- ["\t,\t", ["\t", "\t"]],
49
- ["foo,\"\r\n\r\",baz", ["foo", "\r\n\r", "baz"]],
50
- ["foo,\"\r\n\n\",baz", ["foo", "\r\n\n", "baz"]],
51
- ["foo,\"foo,bar\",baz", ["foo", "foo,bar", "baz"]],
52
- [";,;", [";", ";"]] ].each do |csv_test|
53
- assert_equal(csv_test.last, CsvParser.parse_line(csv_test.first, "UTF-8"))
22
+ def test_mastering_regex_example
23
+ ex = %Q{Ten Thousand,10000, 2710 ,,"10,000","It's ""10 Grand"", baby",10K}
24
+ assert_equal( [ "Ten Thousand", "10000", " 2710 ", nil, "10,000",
25
+ "It's \"10 Grand\", baby", "10K" ],
26
+ CsvParser.parse_line(ex, "UTF-8") )
54
27
  end
55
-
56
- [ ["foo,\"\"\"\"\"\",baz", ["foo", "\"\"", "baz"]],
57
- ["foo,\"\"\"bar\"\"\",baz", ["foo", "\"bar\"", "baz"]],
58
- ["foo,\"\r\n\",baz", ["foo", "\r\n", "baz"]],
59
- ["\"\"", [""]],
60
- ["foo,\"\"\"\",baz", ["foo", "\"", "baz"]],
61
- ["foo,\"\r.\n\",baz", ["foo", "\r.\n", "baz"]],
62
- ["foo,\"\r\",baz", ["foo", "\r", "baz"]],
63
- ["foo,\"\",baz", ["foo", "", "baz"]],
64
- ["foo", ["foo"]],
65
- [",,", [nil, nil, nil]],
66
- [",", [nil, nil]],
67
- ["foo,\"\n\",baz", ["foo", "\n", "baz"]],
68
- ["foo,,baz", ["foo", nil, "baz"]],
69
- ["foo,bar", ["foo", "bar"]],
70
- ["foo,\"\r\n\n\",baz", ["foo", "\r\n\n", "baz"]],
71
- ["foo,\"foo,bar\",baz", ["foo", "foo,bar", "baz"]] ].each do |csv_test|
72
- assert_equal(csv_test.last, CsvParser.parse_line(csv_test.first, "UTF-8"))
73
- end
74
- end
75
28
 
76
- # From: http://ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-core/6496
77
- def test_aras_edge_cases
78
- [ [%Q{a,b}, ["a", "b"]],
79
- [%Q{a,"""b"""}, ["a", "\"b\""]],
80
- [%Q{a,"""b"}, ["a", "\"b"]],
81
- [%Q{a,"b"""}, ["a", "b\""]],
82
- [%Q{a,"\nb"""}, ["a", "\nb\""]],
83
- [%Q{a,"""\nb"}, ["a", "\"\nb"]],
84
- [%Q{a,"""\nb\n"""}, ["a", "\"\nb\n\""]],
85
- [%Q{a,"""\nb\n""",\nc}, ["a", "\"\nb\n\"", nil]],
86
- [%Q{a,,,}, ["a", nil, nil, nil]],
87
- [%Q{,}, [nil, nil]],
88
- [%Q{"",""}, ["", ""]],
89
- [%Q{""""}, ["\""]],
90
- [%Q{"""",""}, ["\"",""]],
91
- [%Q{,""}, [nil,""]],
92
- [%Q{,"\r"}, [nil,"\r"]],
93
- [%Q{"\r\n,"}, ["\r\n,"]],
94
- [%Q{"\r\n,",}, ["\r\n,", nil]] ].each do |edge_case|
95
- assert_equal(edge_case.last, CsvParser.parse_line(edge_case.first, "UTF-8"))
29
+ # Pulled from: http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/test/csv/test_csv.rb?rev=1.12.2.2;content-type=text%2Fplain
30
+ def test_std_lib_csv
31
+ [ ["\t", ["\t"]],
32
+ ["foo,\"\"\"\"\"\",baz", ["foo", "\"\"", "baz"]],
33
+ ["foo,\"\"\"bar\"\"\",baz", ["foo", "\"bar\"", "baz"]],
34
+ ["\"\"\"\n\",\"\"\"\n\"", ["\"\n", "\"\n"]],
35
+ ["foo,\"\r\n\",baz", ["foo", "\r\n", "baz"]],
36
+ ["\"\"", [""]],
37
+ ["foo,\"\"\"\",baz", ["foo", "\"", "baz"]],
38
+ ["foo,\"\r.\n\",baz", ["foo", "\r.\n", "baz"]],
39
+ ["foo,\"\r\",baz", ["foo", "\r", "baz"]],
40
+ ["foo,\"\",baz", ["foo", "", "baz"]],
41
+ ["\",\"", [","]],
42
+ ["foo", ["foo"]],
43
+ [",,", [nil, nil, nil]],
44
+ [",", [nil, nil]],
45
+ ["foo,\"\n\",baz", ["foo", "\n", "baz"]],
46
+ ["foo,,baz", ["foo", nil, "baz"]],
47
+ ["\"\"\"\r\",\"\"\"\r\"", ["\"\r", "\"\r"]],
48
+ ["\",\",\",\"", [",", ","]],
49
+ ["foo,bar,", ["foo", "bar", nil]],
50
+ [",foo,bar", [nil, "foo", "bar"]],
51
+ ["foo,bar", ["foo", "bar"]],
52
+ [";", [";"]],
53
+ ["\t,\t", ["\t", "\t"]],
54
+ ["foo,\"\r\n\r\",baz", ["foo", "\r\n\r", "baz"]],
55
+ ["foo,\"\r\n\n\",baz", ["foo", "\r\n\n", "baz"]],
56
+ ["foo,\"foo,bar\",baz", ["foo", "foo,bar", "baz"]],
57
+ [";,;", [";", ";"]] ].each do |csv_test|
58
+ assert_equal(csv_test.last, CsvParser.parse_line(csv_test.first, "UTF-8"))
96
59
  end
97
- end
60
+
61
+ [ ["foo,\"\"\"\"\"\",baz", ["foo", "\"\"", "baz"]],
62
+ ["foo,\"\"\"bar\"\"\",baz", ["foo", "\"bar\"", "baz"]],
63
+ ["foo,\"\r\n\",baz", ["foo", "\r\n", "baz"]],
64
+ ["\"\"", [""]],
65
+ ["foo,\"\"\"\",baz", ["foo", "\"", "baz"]],
66
+ ["foo,\"\r.\n\",baz", ["foo", "\r.\n", "baz"]],
67
+ ["foo,\"\r\",baz", ["foo", "\r", "baz"]],
68
+ ["foo,\"\",baz", ["foo", "", "baz"]],
69
+ ["foo", ["foo"]],
70
+ [",,", [nil, nil, nil]],
71
+ [",", [nil, nil]],
72
+ ["foo,\"\n\",baz", ["foo", "\n", "baz"]],
73
+ ["foo,,baz", ["foo", nil, "baz"]],
74
+ ["foo,bar", ["foo", "bar"]],
75
+ ["foo,\"\r\n\n\",baz", ["foo", "\r\n\n", "baz"]],
76
+ ["foo,\"foo,bar\",baz", ["foo", "foo,bar", "baz"]] ].each do |csv_test|
77
+ assert_equal(csv_test.last, CsvParser.parse_line(csv_test.first, "UTF-8"))
78
+ end
79
+ end
98
80
 
99
- def test_james_edge_cases
100
- # A read at eof? should return nil.
101
- assert_equal(nil, CsvParser.parse_line("", "UTF-8"))
102
- #
103
- # With CSV it's impossible to tell an empty line from a line containing a
104
- # single +nil+ field. The standard CSV library returns <tt>[nil]</tt>
105
- # in these cases, but <tt>Array.new</tt> makes more sense to me.
106
- #
107
- #assert_equal(Array.new, NesquikCSV.parse_line("\n1,2,3\n"))
108
- assert_equal([nil], CsvParser.parse_line("\n1,2,3\n", "UTF-8"))
109
- end
81
+ # From: http://ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-core/6496
82
+ def test_aras_edge_cases
83
+ [ [%Q{a,b}, ["a", "b"]],
84
+ [%Q{a,"""b"""}, ["a", "\"b\""]],
85
+ [%Q{a,"""b"}, ["a", "\"b"]],
86
+ [%Q{a,"b"""}, ["a", "b\""]],
87
+ [%Q{a,"\nb"""}, ["a", "\nb\""]],
88
+ [%Q{a,"""\nb"}, ["a", "\"\nb"]],
89
+ [%Q{a,"""\nb\n"""}, ["a", "\"\nb\n\""]],
90
+ [%Q{a,"""\nb\n""",\nc}, ["a", "\"\nb\n\"", nil]],
91
+ [%Q{a,,,}, ["a", nil, nil, nil]],
92
+ [%Q{,}, [nil, nil]],
93
+ [%Q{"",""}, ["", ""]],
94
+ [%Q{""""}, ["\""]],
95
+ [%Q{"""",""}, ["\"",""]],
96
+ [%Q{,""}, [nil,""]],
97
+ [%Q{,"\r"}, [nil,"\r"]],
98
+ [%Q{"\r\n,"}, ["\r\n,"]],
99
+ [%Q{"\r\n,",}, ["\r\n,", nil]] ].each do |edge_case|
100
+ assert_equal(edge_case.last, CsvParser.parse_line(edge_case.first, "UTF-8"))
101
+ end
102
+ end
110
103
 
111
- def test_rob_edge_cases
112
- [ [%Q{"a\nb"}, ["a\nb"]],
113
- [%Q{"\n\n\n"}, ["\n\n\n"]],
114
- [%Q{a,"b\n\nc"}, ['a', "b\n\nc"]],
115
- [%Q{,"\r\n"}, [nil,"\r\n"]],
116
- [%Q{,"\r\n."}, [nil,"\r\n."]],
117
- [%Q{"a\na","one newline"}, ["a\na", 'one newline']],
118
- [%Q{"a\n\na","two newlines"}, ["a\n\na", 'two newlines']],
119
- [%Q{"a\r\na","one CRLF"}, ["a\r\na", 'one CRLF']],
120
- [%Q{"a\r\n\r\na","two CRLFs"}, ["a\r\n\r\na", 'two CRLFs']],
121
- [%Q{with blank,"start\n\nfinish"\n}, ['with blank', "start\n\nfinish"]],
122
- ].each do |edge_case|
123
- assert_equal(edge_case.last, CsvParser.parse_line(edge_case.first, "UTF-8"))
104
+ def test_james_edge_cases
105
+ # A read at eof? should return nil.
106
+ assert_equal(nil, CsvParser.parse_line("", "UTF-8"))
107
+ #
108
+ # With CSV it's impossible to tell an empty line from a line containing a
109
+ # single +nil+ field. The standard CSV library returns <tt>[nil]</tt>
110
+ # in these cases, but <tt>Array.new</tt> makes more sense to me.
111
+ #
112
+ #assert_equal(Array.new, NesquikCSV.parse_line("\n1,2,3\n"))
113
+ assert_equal([nil], CsvParser.parse_line("\n1,2,3\n", "UTF-8"))
124
114
  end
125
- end
126
115
 
127
- def test_encoding
128
- assert_equal(["ñ","ó","¸"], CsvParser.parse_line("ñ,ó,¸", "UTF-8"))
129
- end
116
+ def test_rob_edge_cases
117
+ [ [%Q{"a\nb"}, ["a\nb"]],
118
+ [%Q{"\n\n\n"}, ["\n\n\n"]],
119
+ [%Q{a,"b\n\nc"}, ['a', "b\n\nc"]],
120
+ [%Q{,"\r\n"}, [nil,"\r\n"]],
121
+ [%Q{,"\r\n."}, [nil,"\r\n."]],
122
+ [%Q{"a\na","one newline"}, ["a\na", 'one newline']],
123
+ [%Q{"a\n\na","two newlines"}, ["a\n\na", 'two newlines']],
124
+ [%Q{"a\r\na","one CRLF"}, ["a\r\na", 'one CRLF']],
125
+ [%Q{"a\r\n\r\na","two CRLFs"}, ["a\r\n\r\na", 'two CRLFs']],
126
+ [%Q{with blank,"start\n\nfinish"\n}, ['with blank', "start\n\nfinish"]],
127
+ ].each do |edge_case|
128
+ assert_equal(edge_case.last, CsvParser.parse_line(edge_case.first, "UTF-8"))
129
+ end
130
+ end
130
131
 
131
- def test_quoted_line_break
132
- assert_equal(["foo","bar,baz\nbeam","bee"], CsvParser.parse_line("foo,\"bar,baz\nbeam\",bee", "UTF-8"))
133
- end
132
+ def test_encoding
133
+ assert_equal(["ñ","ó","¸"], CsvParser.parse_line("ñ,ó,¸", "UTF-8"))
134
+ end
135
+
136
+ def test_quoted_line_break
137
+ assert_equal(["foo","bar,baz\nbeam","bee"], CsvParser.parse_line("foo,\"bar,baz\nbeam\",bee", "UTF-8"))
138
+ end
139
+
140
+ def test_quoted_line_break_at_end
141
+ assert_equal(["foo","bar,baz\n","bee"], CsvParser.parse_line("foo,\"bar,baz\n\",bee", "UTF-8"))
142
+ end
134
143
 
135
- def test_quoted_line_break_at_end
136
- assert_equal(["foo","bar,baz\n","bee"], CsvParser.parse_line("foo,\"bar,baz\n\",bee", "UTF-8"))
137
144
  end
138
145
 
139
- end
146
+ end
data/test/tc_interface.rb CHANGED
@@ -72,7 +72,8 @@ class TestNesquikCSVInterface < Test::Unit::TestCase
72
72
  def test_parse_line_with_empty_lines
73
73
  assert_equal(nil, NesquikCSV.parse_line("", "UTF-8")) # to signal eof
74
74
  #assert_equal(Array.new, NesquikCSV.parse_line("\n1,2,3"))
75
- assert_equal([nil], NesquikCSV.parse_line("\n1,2,3", "UTF-8"))
75
+ # Test removed because it didn't respect CSV's interface: [] != [nil]
76
+ #assert_equal([nil], NesquikCSV.parse_line("\n1,2,3", "UTF-8"))
76
77
  end
77
78
 
78
79
  def test_read_and_readlines
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nesquikcsv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Martty
@@ -14,28 +14,28 @@ dependencies:
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
  - !ruby/object:Gem::Dependency
28
28
  name: rake-compiler
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
  description: Fastest-CSV fork with encoding support
@@ -46,7 +46,7 @@ extensions:
46
46
  - ext/csv_parser/extconf.rb
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - ".gitignore"
49
+ - .gitignore
50
50
  - Gemfile
51
51
  - LICENSE
52
52
  - README.md
@@ -68,17 +68,17 @@ require_paths:
68
68
  - lib
69
69
  required_ruby_version: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ">="
71
+ - - '>='
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ">="
76
+ - - '>='
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
79
  requirements: []
80
80
  rubyforge_project:
81
- rubygems_version: 2.5.1
81
+ rubygems_version: 2.2.2
82
82
  signing_key:
83
83
  specification_version: 4
84
84
  summary: Fastest-CSV fork with encoding support