file_processor 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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