file_processor 0.2.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTM0MzYxZjMxMmZmNTZkY2E2MTE0NGFjZTE5NGUzYTJiZDdjMzgxZg==
5
- data.tar.gz: !binary |-
6
- YTVkYmExNWM2NTYyZTBhMzMxNzUzN2ZiMzFmMTYxZTBmMGQ5ZjVjNQ==
2
+ SHA1:
3
+ metadata.gz: 5882fab6de2ba57e774f4041584b721d487fb20b
4
+ data.tar.gz: f092d547c1d07f61a9431afa97cdc87f7c790256
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MzUzMGM5ZGY5Mjg3Mjc4MjdlMmEyZmQ4ZGNhYjE3YmQ1ZGI1MTc4YjMyOGNi
10
- MTEwNDM2MGY1MmMwYTEyYTczN2JiMDAzYWUyMzE4ODUwZjU1MjQxZTliNjQ3
11
- ZWQ5MGQzYTIzYjg0MWQ5MjU3N2ExZGNkNDAyMDVjZWZhNjI1NWQ=
12
- data.tar.gz: !binary |-
13
- YmM0MWM1NjYzYWQyYzg5MjQ3ZjkxY2Y2NDZhMDNmZGExYWU4OWZhZWFjYzVl
14
- ZDZmNTIzNjI0YTViNTU3OTkyNWFlMGY1ZGRhNWYzN2RmMTAxOWZlYzNiMzBl
15
- YmFjMWYwYzNiMWVjZTQ3ZDI2MmYzODgzMTFlZjViMDdlY2ZjMTE=
6
+ metadata.gz: cb873a8ab1a40ecccfcfbd343fef30d58c738655f004f1dfcbeb5bf0f3363fe01aec855a7876beacbb887ec7974ac37dc62e1b03b89e41fa2ac1894634a24975
7
+ data.tar.gz: f11802d8091f0e3a77accec53f6d262922ac7f6fad5a7e8672b29f387aef40912d8a5c29c298b6eadd8a24ab879c4a888441252522d94563d5a98b97a68811fb
data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
1
  --color
2
2
  --format documentation
3
- --drb
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ file_processor
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.1
data/.travis.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
3
+ - 2.2.1
4
4
  bundler_args: --without development
data/Gemfile CHANGED
@@ -6,12 +6,12 @@ gemspec
6
6
  gem 'rake'
7
7
 
8
8
  group(:development) do
9
- gem 'debugger'
9
+ gem 'byebug'
10
10
  end
11
11
 
12
12
  group(:test) do
13
- gem 'rspec', "~> 2.14.0.rc1"
13
+ gem 'rspec'
14
14
  gem 'simplecov'
15
- gem 'json', '~> 1.7.7'
15
+ gem 'json'
16
16
  end
17
17
 
data/Gemfile.lock CHANGED
@@ -1,42 +1,44 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- file_processor (0.2.0)
5
4
 
6
5
  GEM
7
6
  remote: https://rubygems.org/
8
7
  specs:
9
- columnize (0.3.6)
10
- debugger (1.6.2)
11
- columnize (>= 0.3.1)
12
- debugger-linecache (~> 1.2.0)
13
- debugger-ruby_core_source (~> 1.2.3)
14
- debugger-linecache (1.2.0)
15
- debugger-ruby_core_source (1.2.3)
16
- diff-lcs (1.2.4)
17
- json (1.7.7)
18
- multi_json (1.8.2)
19
- rake (10.1.0)
20
- rspec (2.14.1)
21
- rspec-core (~> 2.14.0)
22
- rspec-expectations (~> 2.14.0)
23
- rspec-mocks (~> 2.14.0)
24
- rspec-core (2.14.7)
25
- rspec-expectations (2.14.3)
26
- diff-lcs (>= 1.1.3, < 2.0)
27
- rspec-mocks (2.14.4)
28
- simplecov (0.7.1)
29
- multi_json (~> 1.0)
30
- simplecov-html (~> 0.7.1)
31
- simplecov-html (0.7.1)
8
+ byebug (6.0.2)
9
+ diff-lcs (1.2.5)
10
+ docile (1.1.5)
11
+ json (1.8.3)
12
+ rake (10.4.2)
13
+ rspec (3.3.0)
14
+ rspec-core (~> 3.3.0)
15
+ rspec-expectations (~> 3.3.0)
16
+ rspec-mocks (~> 3.3.0)
17
+ rspec-core (3.3.2)
18
+ rspec-support (~> 3.3.0)
19
+ rspec-expectations (3.3.1)
20
+ diff-lcs (>= 1.2.0, < 2.0)
21
+ rspec-support (~> 3.3.0)
22
+ rspec-mocks (3.3.2)
23
+ diff-lcs (>= 1.2.0, < 2.0)
24
+ rspec-support (~> 3.3.0)
25
+ rspec-support (3.3.0)
26
+ simplecov (0.10.0)
27
+ docile (~> 1.1.0)
28
+ json (~> 1.8)
29
+ simplecov-html (~> 0.10.0)
30
+ simplecov-html (0.10.0)
32
31
 
33
32
  PLATFORMS
34
33
  ruby
35
34
 
36
35
  DEPENDENCIES
37
- debugger
36
+ byebug
38
37
  file_processor!
39
- json (~> 1.7.7)
38
+ json
40
39
  rake
41
- rspec (~> 2.14.0.rc1)
40
+ rspec
42
41
  simplecov
42
+
43
+ BUNDLED WITH
44
+ 1.10.5
@@ -113,16 +113,12 @@ module FileProcessor
113
113
  loaded_io = decompress(::Kernel.open(filename, 'rb', open_options || {}))
114
114
  loaded_io.rewind
115
115
 
116
- @original_default_internal = Encoding.default_internal
117
- Encoding.default_internal = nil
118
-
119
116
  loaded_io.each do |line|
120
117
  tempfile.write(line)
121
118
  end
122
119
  ensure
123
120
  tempfile.close if tempfile
124
121
  loaded_io.close if loaded_io
125
- Encoding.default_internal = @original_default_internal
126
122
  end
127
123
 
128
124
  def decompress(loaded_io)
@@ -182,4 +178,4 @@ module FileProcessor
182
178
  @tempfile ||= FileProcessor::Tempfile.new
183
179
  end
184
180
  end
185
- end
181
+ end
@@ -17,4 +17,4 @@ module FileProcessor
17
17
  __setobj__(@tmpfile)
18
18
  end
19
19
  end
20
- end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module FileProcessor
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -7,14 +7,14 @@ describe FileProcessor::CSV do
7
7
  subject(:processor) { FileProcessor::CSV.new(filename, options) }
8
8
 
9
9
  it "delegates to a CSV instance" do
10
- processor.__getobj__.should be_a(::CSV)
10
+ expect(processor.__getobj__).to be_a(::CSV)
11
11
  end
12
12
 
13
13
  describe "#col_sep" do
14
14
  context "when it is not given" do
15
15
  context "and the first line of the file has more than one header column separated with a semi-colon" do
16
16
  it "detects it properly" do
17
- processor.col_sep.should eq(';')
17
+ expect(processor.col_sep).to eq(';')
18
18
  end
19
19
  end
20
20
 
@@ -22,7 +22,7 @@ describe FileProcessor::CSV do
22
22
  let(:filename) { fixture('base-with-comma-separated-header.csv') }
23
23
 
24
24
  it "detects it properly" do
25
- processor.col_sep.should eq(',')
25
+ expect(processor.col_sep).to eq(',')
26
26
  end
27
27
  end
28
28
 
@@ -30,7 +30,7 @@ describe FileProcessor::CSV do
30
30
  let(:filename) { fixture('base-with-unknown-column-separator.csv') }
31
31
 
32
32
  it "does not detects it, falling back to the default one" do
33
- processor.col_sep.should eq(',')
33
+ expect(processor.col_sep).to eq(',')
34
34
  end
35
35
  end
36
36
 
@@ -39,7 +39,7 @@ describe FileProcessor::CSV do
39
39
  let(:filename) { fixture('base-non-ascii-characters-in-header-utf-8.csv') }
40
40
 
41
41
  it "detects it properly" do
42
- processor.col_sep.should eq(';')
42
+ expect(processor.col_sep).to eq(';')
43
43
  end
44
44
  end
45
45
 
@@ -47,7 +47,7 @@ describe FileProcessor::CSV do
47
47
  let(:filename) { fixture('base-non-ascii-characters-in-header-iso-8859-1.csv') }
48
48
 
49
49
  it "detects it properly" do
50
- processor.col_sep.should eq(';')
50
+ expect(processor.col_sep).to eq(';')
51
51
  end
52
52
  end
53
53
  end
@@ -57,21 +57,21 @@ describe FileProcessor::CSV do
57
57
  let(:options) { { col_sep: '|' } }
58
58
 
59
59
  it "uses the given col_sep" do
60
- processor.col_sep.should eq('|')
60
+ expect(processor.col_sep).to eq('|')
61
61
  end
62
62
  end
63
63
  end
64
64
 
65
65
  describe "#count" do
66
66
  it "returns the number of rows in the CSV" do
67
- processor.count.should eq(5)
67
+ expect(processor.count).to eq(5)
68
68
  end
69
69
 
70
70
  context "when the file has new line characters in a field, but it is properly quoted" do
71
71
  let(:filename) { fixture('base-new-line-in-field.csv') }
72
72
 
73
73
  it "returns the correct number of rows in the CSV" do
74
- processor.count.should eq(3)
74
+ expect(processor.count).to eq(3)
75
75
  end
76
76
  end
77
77
 
@@ -79,7 +79,7 @@ describe FileProcessor::CSV do
79
79
  let(:filename) { fixture('base-with-blank-lines.csv') }
80
80
 
81
81
  it "skips them by default" do
82
- processor.count.should eq(5)
82
+ expect(processor.count).to eq(5)
83
83
  end
84
84
  end
85
85
 
@@ -87,14 +87,14 @@ describe FileProcessor::CSV do
87
87
  let(:filename) { fixture('base-with-lines-with-no-data.csv') }
88
88
 
89
89
  it "does not count them" do
90
- processor.count.should eq(5)
90
+ expect(processor.count).to eq(5)
91
91
  end
92
92
 
93
93
  context "but skip_blanks is false" do
94
94
  let(:options) { { skip_blanks: false } }
95
95
 
96
96
  it "does counts them" do
97
- processor.count.should eq(7)
97
+ expect(processor.count).to eq(7)
98
98
  end
99
99
  end
100
100
 
@@ -102,7 +102,7 @@ describe FileProcessor::CSV do
102
102
  let(:options) { { headers: true } }
103
103
 
104
104
  it "does not count these lines, as well as the header" do
105
- processor.count.should eq(4)
105
+ expect(processor.count).to eq(4)
106
106
  end
107
107
  end
108
108
  end
@@ -111,7 +111,7 @@ describe FileProcessor::CSV do
111
111
  let(:filename) { fixture('base-with-lines-with-no-data.csv') }
112
112
 
113
113
  it "returns the number of lines for which the block evaluates to true, properly handling lines with no data" do
114
- processor.count { |row| !row.first.nil? }.should eq(3)
114
+ expect(processor.count { |row| !row.first.nil? }).to eq(3)
115
115
  end
116
116
  end
117
117
  end
@@ -119,13 +119,13 @@ describe FileProcessor::CSV do
119
119
  describe "#total_count" do
120
120
  it "works as count, but returns all rows, even when called multiple times, since it rewinds the io file" do
121
121
  processor.total_count
122
- processor.total_count.should eq(5)
122
+ expect(processor.total_count).to eq(5)
123
123
  end
124
124
  end
125
125
 
126
126
  describe "#each" do
127
127
  it "returns an enumerator when called without a block" do
128
- processor.each.should be_a(Enumerator)
128
+ expect(processor.each).to be_a(Enumerator)
129
129
  end
130
130
 
131
131
  context "when the file has lines with no data" do
@@ -170,7 +170,9 @@ describe FileProcessor::CSV do
170
170
  let(:filename) { fixture('base-utf-8.csv') }
171
171
  let(:options) { { encoding: 'utf-8' } }
172
172
 
173
- its(:detected_encoding) { should eq(Encoding.find(options[:encoding])) }
173
+ it "returns the proper detected encoding" do
174
+ expect(processor.detected_encoding).to eq(Encoding.find(options[:encoding]))
175
+ end
174
176
 
175
177
  it "opens the file properly" do
176
178
  expect {
@@ -184,13 +186,15 @@ describe FileProcessor::CSV do
184
186
  it "uses it to open the file, raising an error" do
185
187
  expect {
186
188
  processor
187
- }.to raise_error
189
+ }.to raise_error(ArgumentError)
188
190
  end
189
191
 
190
192
  context "but the given encoding is ISO-8859-1" do
191
193
  let(:options) { { encoding: 'ISO-8859-1' } }
192
194
 
193
- its(:detected_encoding) { should eq(Encoding.find(options[:encoding])) }
195
+ it "returns the proper detected encoding" do
196
+ expect(processor.detected_encoding).to eq(Encoding.find(options[:encoding]))
197
+ end
194
198
 
195
199
  it "opens the file properly" do
196
200
  expect {
@@ -202,20 +206,24 @@ describe FileProcessor::CSV do
202
206
  end
203
207
 
204
208
  context "when the file is in US-ASCII" do
205
- its(:detected_encoding) { should eq(Encoding.find('utf-8')) }
209
+ it "returns the proper detected encoding" do
210
+ expect(processor.detected_encoding).to eq(Encoding.find('utf-8'))
211
+ end
206
212
 
207
213
  it "reads it with utf-8" do
208
- processor.encoding.should eq(Encoding.find('utf-8'))
214
+ expect(processor.encoding).to eq(Encoding.find('utf-8'))
209
215
  end
210
216
  end
211
217
 
212
218
  context "when the file can be read in utf-8" do
213
219
  let(:filename) { fixture('base-utf-8.csv') }
214
220
 
215
- its(:detected_encoding) { should eq(Encoding.find('utf-8')) }
221
+ it "returns the proper detected encoding" do
222
+ expect(processor.detected_encoding).to eq(Encoding.find('utf-8'))
223
+ end
216
224
 
217
225
  it "properly detects it" do
218
- processor.encoding.should eq(Encoding.find('utf-8'))
226
+ expect(processor.encoding).to eq(Encoding.find('utf-8'))
219
227
  end
220
228
 
221
229
  it "can iterate through all of its contents without raising an error" do
@@ -229,10 +237,12 @@ describe FileProcessor::CSV do
229
237
  context "but it can be read in iso-8859-1" do
230
238
  let(:filename) { fixture('base-iso-8859-1.csv') }
231
239
 
232
- its(:detected_encoding) { should eq(Encoding.find('iso-8859-1')) }
240
+ it "returns the proper detected encoding" do
241
+ expect(processor.detected_encoding).to eq(Encoding.find('iso-8859-1'))
242
+ end
233
243
 
234
244
  it "properly detects it, transcoding it to utf-8" do
235
- processor.encoding.should eq(Encoding.find('utf-8'))
245
+ expect(processor.encoding).to eq(Encoding.find('utf-8'))
236
246
  end
237
247
 
238
248
  it "can iterate through all of its contents without raising an error" do
@@ -244,10 +254,12 @@ describe FileProcessor::CSV do
244
254
  context "and no look-ahead is used" do
245
255
  let(:options) { { row_sep: "\n" } }
246
256
 
247
- its(:detected_encoding) { should eq(Encoding.find('iso-8859-1')) }
257
+ it "returns the proper detected encoding" do
258
+ expect(processor.detected_encoding).to eq(Encoding.find('iso-8859-1'))
259
+ end
248
260
 
249
261
  it "properly detects it, transcoding it to utf-8" do
250
- processor.encoding.should eq(Encoding.find('utf-8'))
262
+ expect(processor.encoding).to eq(Encoding.find('utf-8'))
251
263
  end
252
264
 
253
265
  it "can iterate through all of its contents without raising an error" do
@@ -264,19 +276,19 @@ describe FileProcessor::CSV do
264
276
  let(:filename) { fixture('base.csv.gz') }
265
277
 
266
278
  it "detects that the file is gzipped and decompress it" do
267
- processor.shift.should eq(['A', 'B', 'C']) # first line decompressed
279
+ expect(processor.shift).to eq(['A', 'B', 'C']) # first line decompressed
268
280
  end
269
281
 
270
- it { should be_gzipped }
282
+ it { is_expected.to be_gzipped }
271
283
 
272
284
  context "when the file is in ISO-8859-1 encoding" do
273
285
  let(:filename) { fixture('base-iso-8859-1.csv.gz') }
274
286
 
275
287
  it "detects that the file is gzipped and decompress it" do
276
- processor.shift.should eq(['A', 'B', 'C']) # first line decompressed
288
+ expect(processor.shift).to eq(['A', 'B', 'C']) # first line decompressed
277
289
  end
278
290
 
279
- it { should be_gzipped }
291
+ it { is_expected.to be_gzipped }
280
292
  end
281
293
 
282
294
  context "when { gzipped: false } options is passed" do
@@ -285,7 +297,7 @@ describe FileProcessor::CSV do
285
297
  context "and the file is not gzipped" do
286
298
  let(:filename) { fixture('base.csv') }
287
299
 
288
- it { should_not be_gzipped }
300
+ it { is_expected.to_not be_gzipped }
289
301
 
290
302
  it "does not raise an error" do
291
303
  expect {
@@ -296,7 +308,7 @@ describe FileProcessor::CSV do
296
308
 
297
309
  context "and the file is gzipped" do
298
310
  it "does not attempt to detect it, reading data as it were UTF-8" do
299
- processor.shift.should_not eq(['A', 'B', 'C'])
311
+ expect(processor.shift).to_not eq(['A', 'B', 'C'])
300
312
  end
301
313
  end
302
314
  end
@@ -307,7 +319,7 @@ describe FileProcessor::CSV do
307
319
  context "and the file is not gzipped" do
308
320
  let(:filename) { fixture('base.csv') }
309
321
 
310
- it { should_not be_gzipped }
322
+ it { is_expected.to_not be_gzipped }
311
323
 
312
324
  it "does not raise an error" do
313
325
  expect {
@@ -318,7 +330,7 @@ describe FileProcessor::CSV do
318
330
 
319
331
  context "and the file is gzipped" do
320
332
  it "properly assumes that the file is gzipped and decompress it" do
321
- processor.shift.should eq(['A', 'B', 'C']) # first line decompressed
333
+ expect(processor.shift).to eq(['A', 'B', 'C']) # first line decompressed
322
334
  end
323
335
  end
324
336
  end
@@ -430,11 +442,11 @@ describe FileProcessor::CSV do
430
442
 
431
443
  describe ".open" do
432
444
  subject(:processor) { double(FileProcessor::CSV, close: true) }
433
- before { FileProcessor::CSV.stub(:new).with(filename, options).and_return(processor) }
445
+ before { allow(FileProcessor::CSV).to receive(:new).with(filename, options).and_return(processor) }
434
446
 
435
447
  context "without a block" do
436
448
  it "creates a new instance and returns it" do
437
- FileProcessor::CSV.open(filename, options).should eq(processor)
449
+ expect(FileProcessor::CSV.open(filename, options)).to eq(processor)
438
450
  end
439
451
  end
440
452
 
@@ -5,7 +5,7 @@ describe FileProcessor::Tempfile do
5
5
  let(:generated_path) { File.join(Dir.tmpdir, 'some-path') }
6
6
 
7
7
  it "creates the file" do
8
- File.exists?(temp_file.path).should be_true
8
+ expect(File.exists?(temp_file.path)).to be_truthy
9
9
  end
10
10
 
11
11
  it "opens file ready to be written" do
@@ -16,7 +16,7 @@ describe FileProcessor::Tempfile do
16
16
 
17
17
  describe "#path" do
18
18
  it "is generated using 'file-processor' basename" do
19
- temp_file.path.start_with?(File.join(Dir.tmpdir, 'file-processor')).should be_true
19
+ expect(temp_file.path.start_with?(File.join(Dir.tmpdir, 'file-processor'))).to be_truthy
20
20
  end
21
21
  end
22
22
 
@@ -24,26 +24,26 @@ describe FileProcessor::Tempfile do
24
24
  let!(:old_file) { temp_file.__getobj__ }
25
25
 
26
26
  it "closes the old file" do
27
- old_file.should_receive(:close)
27
+ expect(old_file).to receive(:close)
28
28
  temp_file.reopen('r')
29
29
  end
30
30
 
31
31
  it "updates the delegated object" do
32
32
  temp_file.reopen('r')
33
- temp_file.__getobj__.should_not eq(old_file)
34
- temp_file.__getobj__.should be_a(File)
33
+ expect(temp_file.__getobj__).to_not eq(old_file)
34
+ expect(temp_file.__getobj__).to be_a(File)
35
35
  end
36
36
 
37
37
  it "reopens the path with the given mode" do
38
- temp_file.stub(:path).and_return(generated_path)
39
- File.should_receive(:open).with(generated_path, 'r:utf-8', 384)
38
+ allow(temp_file).to receive(:path).and_return(generated_path)
39
+ expect(File).to receive(:open).with(generated_path, 'r:utf-8', { perm: 384 })
40
40
  temp_file.reopen('r:utf-8')
41
41
  end
42
42
 
43
43
  context "when the old file is already closed" do
44
44
  it "does not closes the old file" do
45
45
  old_file.close
46
- old_file.should_not_receive(:close)
46
+ expect(old_file).to_not receive(:close)
47
47
  temp_file.reopen('r')
48
48
  end
49
49
  end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,14 @@
1
1
  require "bundler/setup"
2
2
 
3
3
  require 'simplecov'
4
- SimpleCov.start
4
+ SimpleCov.start do
5
+ add_filter '/spec'
6
+ end
5
7
 
6
8
  Bundler.require :default
7
9
 
8
10
  begin
9
- require 'debugger'
11
+ require 'byebug'
10
12
  rescue LoadError
11
13
  end
12
14
 
@@ -15,7 +17,6 @@ root = File.expand_path('../..', __FILE__)
15
17
  Dir[File.join(root, "spec/support/**/*.rb")].each { |f| require f }
16
18
 
17
19
  RSpec.configure do |config|
18
- config.treat_symbols_as_metadata_keys_with_true_values = true
19
20
  config.run_all_when_everything_filtered = true
20
21
  config.filter_run :focus
21
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: file_processor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vicente Mundim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-03 00:00:00.000000000 Z
11
+ date: 2015-10-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A more powerful CSV file processor
14
14
  email:
@@ -17,10 +17,11 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
- - .gitignore
21
- - .rspec
22
- - .rvmrc
23
- - .travis.yml
20
+ - ".gitignore"
21
+ - ".rspec"
22
+ - ".ruby-gemset"
23
+ - ".ruby-version"
24
+ - ".travis.yml"
24
25
  - Gemfile
25
26
  - Gemfile.lock
26
27
  - LICENSE.txt
@@ -56,17 +57,17 @@ require_paths:
56
57
  - lib
57
58
  required_ruby_version: !ruby/object:Gem::Requirement
58
59
  requirements:
59
- - - ! '>='
60
+ - - ">="
60
61
  - !ruby/object:Gem::Version
61
62
  version: '0'
62
63
  required_rubygems_version: !ruby/object:Gem::Requirement
63
64
  requirements:
64
- - - ! '>='
65
+ - - ">="
65
66
  - !ruby/object:Gem::Version
66
67
  version: '0'
67
68
  requirements: []
68
69
  rubyforge_project:
69
- rubygems_version: 2.2.2
70
+ rubygems_version: 2.4.6
70
71
  signing_key:
71
72
  specification_version: 4
72
73
  summary: A more powerful CSV file processor
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm 1.9.3@file_processor --create