csv2hash 0.6.0 → 0.6.1

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: 12502614a6a2f8d3243b4b35152bc6dc33cc3f60
4
- data.tar.gz: 235432257ee6d4e907aaa900f5090fc284fc80db
3
+ metadata.gz: 4017d9fec070fb90dc8c400f67f3c78b9fc6f536
4
+ data.tar.gz: 36ec66a10def761fff7f091aaf61160a8ad4b852
5
5
  SHA512:
6
- metadata.gz: 5f597444c037b909413309e3570374c074a18e96463c40c1c7979cd5aeec5f96f6203ade714959c4ca930341e90d4b67a39f2b3718f02c57e85cf4882b6594d5
7
- data.tar.gz: e9488827e829ecdc086791c8beadc0afcf5dd868327fbf0c78a479f963d19608a50e581d6974366dacbac9fed4ce289741c8c9971098dddbf90f7e374e0f8bb2
6
+ metadata.gz: 9e77b7043aff1425609cd7844ade388db5dda784a7d6fa1da3ea90d773af69327ea94e9efecb2e796e63e995c850c22e59228fda689a6ba694133a66decd1fb1
7
+ data.tar.gz: a54b994cc833b8381d38a4623b96b8a2f630ccd1228990320cf6645e401162ad6fcbe45fed6906c3eac79daeda149e4fc391192f1b19e9168e5f33aa178b508e
@@ -1,3 +1,8 @@
1
+ ### VERSION 0.6.1
2
+
3
+ * deprecations
4
+ * Structure validation rules, MinColumn, MaxColumn are replaced by :min_columns, :max_columns
5
+
1
6
  ### VERSION 0.6.0
2
7
 
3
8
  * backwards incompatible changes
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- csv2hash (0.6.0)
4
+ csv2hash (0.6.1)
5
5
  activesupport (~> 4.1)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- activesupport (4.1.4)
10
+ activesupport (4.1.5)
11
11
  i18n (~> 0.6, >= 0.6.9)
12
12
  json (~> 1.7, >= 1.7.7)
13
13
  minitest (~> 5.1)
@@ -28,10 +28,10 @@ GEM
28
28
  json (1.8.1)
29
29
  method_source (0.8.2)
30
30
  mime-types (2.3)
31
- minitest (5.4.0)
31
+ minitest (5.4.1)
32
32
  multi_json (1.10.1)
33
33
  netrc (0.7.7)
34
- pry (0.10.0)
34
+ pry (0.10.1)
35
35
  coderay (~> 1.1.0)
36
36
  method_source (~> 0.8.1)
37
37
  slop (~> 3.4)
@@ -56,13 +56,13 @@ GEM
56
56
  multi_json
57
57
  simplecov-html (~> 0.8.0)
58
58
  simplecov-html (0.8.0)
59
- slop (3.5.0)
59
+ slop (3.6.0)
60
60
  term-ansicolor (1.3.0)
61
61
  tins (~> 1.0)
62
62
  thor (0.19.1)
63
63
  thread_safe (0.3.4)
64
64
  tins (1.3.2)
65
- tzinfo (1.2.1)
65
+ tzinfo (1.2.2)
66
66
  thread_safe (~> 0.1)
67
67
 
68
68
  PLATFORMS
data/README.md CHANGED
@@ -26,24 +26,26 @@ Or install it yourself as:
26
26
 
27
27
  ## Usage
28
28
 
29
- Parsing is based on rules, you must defined rules of parsing
29
+ Parsing is based on rules, you should defined rule for each cells
30
30
 
31
31
  ### DSL
32
32
 
33
- Csv2hash::Main.generate_definition :name do
34
- set_type { Definition::MAPPING }
35
- set_header_size { 2 } # 0 by default
36
- set_structure_rules {{ 'MaxColumns' => 2 }}
37
- mapping do
38
- cell position: [0,0], key: 'gender'
39
- cell position: [1,0], key: 'name'
33
+ ```
34
+ Csv2hash::Main.generate_definition :name do
35
+ set_type { Definition::MAPPING }
36
+ set_header_size { 2 } # 0 by default
37
+ set_structure_rules {{ 'MaxColumns' => 2 }}
38
+ mapping do
39
+ cell position: [0,0], key: 'gender'
40
+ cell position: [1,0], key: 'name'
41
+ end
40
42
  end
41
- end
42
- Csv2hash::Main[:name] # Access anywhere
43
+ Csv2hash::Main[:name] # Access anywhere
44
+ ```
43
45
 
44
46
  ### Rules
45
47
 
46
- You should declared a definition for you CSV, and then define for each cell what you would expect.
48
+ You should declared a definition of your CSV file, and then define for each cell what you would expect.
47
49
 
48
50
  Example :
49
51
 
@@ -53,7 +55,7 @@ If you want the very first cell, located on the first line and on the first colu
53
55
  cell name: 'aswering', type: 'string', values: ['yes', 'no'], position: [0,0]
54
56
  ```
55
57
 
56
- :type attribute has 'string' for default value, therefore you can just write this:
58
+ `:type` attribute has `String` for default value, therefore you can just write this:
57
59
 
58
60
  ```
59
61
  cell name: 'aswering', values: ['yes', 'no'], position: [0,0]
@@ -109,7 +111,7 @@ A definition should be provided. There are 2 types of definitions:
109
111
 
110
112
  ## Samples
111
113
 
112
- ### Validation of cells with defined precision
114
+ ### [MAPPING] Validation of cells with defined precision
113
115
 
114
116
  Consider the following CSV:
115
117
 
@@ -138,21 +140,21 @@ Precise position validation sample:
138
140
  private
139
141
 
140
142
  def definition
141
- Main.generate_definition :my_defintion do
142
- set_type { Definition::MAPPING }
143
- set_header_size { 1 }
144
- mapping do
145
- cell position: [2,1], key: 'first_name'
146
- cell position: [3,1], key: 'last_name'
147
- end
148
- end
149
- end
143
+ Main.generate_definition :my_defintion do
144
+ set_type { Definition::MAPPING }
145
+ set_header_size { 1 }
146
+ mapping do
147
+ cell position: [2,1], key: 'first_name'
148
+ cell position: [3,1], key: 'last_name'
149
+ end
150
+ end
151
+ end
150
152
  end
151
153
 
152
154
  end
153
155
  ```
154
156
 
155
- ### Validation of a collection (Regular CSV)
157
+ ### [COLLECTION] Validation of a collection (Regular CSV)
156
158
 
157
159
  Consider the following CSV:
158
160
 
@@ -182,18 +184,18 @@ Collection validation sample:
182
184
  Csv2Hash::Definition.new(rules, type = Csv2Hash::Definition::COLLECTION, header_size: 1)
183
185
  end
184
186
 
185
- def definition
186
- Main.generate_definition :my_defintion do
187
- set_type { Definition::COLLECTION }
188
- set_header_size { 1 }
189
- mapping do
190
- cell position: 0, key: 'nickname'
191
- cell position: 1, key: 'first_name'
192
- cell position: 2, key: 'last_name'
193
- end
194
- end
195
- end
196
- end
187
+ def definition
188
+ Main.generate_definition :my_defintion do
189
+ set_type { Definition::COLLECTION }
190
+ set_header_size { 1 }
191
+ mapping do
192
+ cell position: 0, key: 'nickname'
193
+ cell position: 1, key: 'first_name'
194
+ cell position: 2, key: 'last_name'
195
+ end
196
+ end
197
+ end
198
+ end
197
199
 
198
200
  end
199
201
  ```
@@ -201,7 +203,7 @@ Collection validation sample:
201
203
  ### Structure validation rules
202
204
 
203
205
  You may want to validate some structure, like min or max number of columns, definition accepts structure_rules as a key for the third parameter.
204
- Current validations are: MinColumn, MaxColumn
206
+ Current validations are: :min_columns, :max_columns
205
207
 
206
208
  ```
207
209
  class MyParser
@@ -222,7 +224,7 @@ Current validations are: MinColumn, MaxColumn
222
224
  Main.generate_definition :my_defintion do
223
225
  set_type { Definition::COLLECTION }
224
226
  set_header_size { 1 }
225
- set_structure_rules {{ 'MinColumns' => 2, 'MaxColumns' => 3 }}
227
+ set_structure_rules {{ min_columns: 2, max_columns: 3 }}
226
228
  mapping do
227
229
  cell position: 0, key: 'nickname'
228
230
  cell position: 1, key: 'first_name'
@@ -250,18 +252,18 @@ Pasrer can take several parameters like that:
250
252
  definition, file_path_or_data, ignore_blank_line: false
251
253
  ```
252
254
 
253
- in file_path_or_data attribute you can pass directly an Array of data (Array with 2 dimensions) really useful for testing, if you don't care about blank lines in your CSV you can ignore them.
255
+ in `file_path_or_data` attribute you can pass directly an `Array` of data (`Array` with 2 dimensions) really useful for testing, if you don't care about blank lines in your CSV you can ignore them.
254
256
 
255
257
  ### Response
256
258
 
257
- The parser return values wrapper into DataWrapper Object, you can call ```.valid?``` method on this Object and grab either data or errors like that :
259
+ The parser return values wrapper into `DataWrapper Object`, you can call ```.valid?``` method on this Object and grab either data or errors like that :
258
260
 
259
261
  ```
260
262
  response = parser.parse
261
263
  if response.valid?
262
264
  response.data
263
265
  else
264
- response.errors
266
+ response.errors
265
267
  end
266
268
  ```
267
269
 
@@ -273,7 +275,7 @@ data or errors are Array, but errors can be formatted on csv format with .to_csv
273
275
 
274
276
  ## Exception or Not !
275
277
 
276
- You can choose into 2 different modes of parsing, either **break_on_failure mode** for raise exception in first breaking rules or **csv mode** for get csv original data + errors throwing into added columns.
278
+ You can choose into 2 differents modes of parsing, either **break_on_failure mode** for throw an exception when rule fail or **csv mode** for get csv original data + errors throwing into added extra column.
277
279
 
278
280
  ### On **BREAK_ON_FAILURE MODE**
279
281
 
@@ -337,7 +339,7 @@ errors is a Array of Hash
337
339
  ### Rule
338
340
 
339
341
  ```
340
- { position: [1,1], key: 'nickname', allow_blank: false }
342
+ cell position: [1,1], key: 'nickname', allow_blank: false
341
343
  ```
342
344
 
343
345
  ### Error
@@ -373,100 +375,13 @@ Csv data
373
375
  [ [ 'Foo' ] ]
374
376
  ```
375
377
 
376
- # Upgrading
377
-
378
- # Upgrading from 0.5 to 0.6
379
-
380
- Introduce DSL
381
-
382
- Prior to 0.6 :
383
-
384
- ```
385
- rules = [{ position: [0,0], key: 'name' }]
386
- Csv2hash::Definition.new(rules, Definition::MAPPING, options={})
387
-
388
- ```
378
+ # Changes
389
379
 
390
- Starting from 0.6 :
380
+ please refere to [CHANGELOG.md](https://github.com/FinalCAD/csv2hash/blob/master/CHANGELOG.md) doc
391
381
 
392
- ```
393
- Csv2hash::Main.generate_definition :foo do
394
- set_type { Definition::MAPPING }
395
- mapping { cell position: [0,0], key: 'name' }
396
- end
397
- Csv2hash::Main[:foo] # Access anywhere
398
- ```
399
-
400
- # Upgrading from 0.4 to 0.5
401
-
402
- Signature of ```Csv2hash::Main#new``` has changed too
403
-
404
- Prior to 0.5 :
405
-
406
- ```
407
- Csv2Hash::Main.new(definition, file_path_or_data, ignore_blank_line=false)
408
- ```
409
-
410
- Starting from 0.5 :
411
-
412
- ```
413
- Csv2Hash::Main.new(definition, file_path_or_data, ignore_blank_line: false)
414
- ```
415
-
416
- # Upgrading from 0.3 to 0.4
417
-
418
- Signature of ```Csv2hash::Main#new``` has changed too
419
-
420
- Prior to 0.4 :
421
-
422
- ```
423
- Csv2Hash::Main.new(definition, file_path_or_data, break_on_failure=true, ignore_blank_line=false)
424
- ```
425
-
426
- call ```.parse!``` for same result
427
-
428
- Starting from 0.4 :
429
-
430
- ```
431
- Csv2Hash::Main.new(definition, file_path_or_data, ignore_blank_line=false)
432
- ```
433
-
434
- call ```.parse``` for same result
435
-
436
- # Upgrading from 0.2 to 0.3
437
-
438
- ```Csv2hash``` become an ```Module```, ```Csv2hash.new``` no longer works, please use ```Csv2hash::Main.new``` instead.
439
- Signature of ```Csv2hash::Main#new``` has changed too
440
-
441
- Prior to 0.3 :
442
-
443
- ```
444
- Csv2Hash.new(definition, file_path, break_on_failure=true, data_source=nil, ignore_blank_line=false)
445
- ```
446
-
447
- Starting from 0.3 :
448
-
449
- ```
450
- Csv2Hash::Main.new(definition, file_path_or_data, break_on_failure=true, ignore_blank_line=false)
451
- ```
452
-
453
- # Upgrading from 0.1 to 0.2
454
-
455
- The signature of Definition#new has changed, the last parameter is a configuration hash, while in versions prior to 0.2 it was an integer (header_size) consider upgrading your code :
456
-
457
- Prior to 0.2 :
458
-
459
- ```
460
- Csv2Hash::Definition.new(rules, type = Csv2Hash::Definition::COLLECTION, 1)
461
- ```
462
-
463
- Starting from 0.2 :
464
-
465
- ```
466
- Csv2Hash::Definition.new(rules, type = Csv2Hash::Definition::COLLECTION, header_size: 1)
467
- ```
382
+ # Upgrading
468
383
 
469
- If no configuration is passed, header_size defaults remains to 0
384
+ please refere to [UPGRADE.md](https://github.com/FinalCAD/csv2hash/blob/master/UPGRADE.md) doc
470
385
 
471
386
  ## Contributing
472
387
 
data/UPGRADE.md ADDED
@@ -0,0 +1,94 @@
1
+ # Upgrading
2
+
3
+ # Upgrading from 0.5 to 0.6
4
+
5
+ Introduce DSL
6
+
7
+ Prior to 0.6 :
8
+
9
+ ```
10
+ rules = [{ position: [0,0], key: 'name' }]
11
+ Csv2hash::Definition.new(rules, Definition::MAPPING, options={})
12
+
13
+ ```
14
+
15
+ Starting from 0.6 :
16
+
17
+ ```
18
+ Csv2hash::Main.generate_definition :foo do
19
+ set_type { Definition::MAPPING }
20
+ mapping { cell position: [0,0], key: 'name' }
21
+ end
22
+ Csv2hash::Main[:foo] # Access anywhere
23
+ ```
24
+
25
+ # Upgrading from 0.4 to 0.5
26
+
27
+ Signature of ```Csv2hash::Main#new``` has changed too
28
+
29
+ Prior to 0.5 :
30
+
31
+ ```
32
+ Csv2Hash::Main.new(definition, file_path_or_data, ignore_blank_line=false)
33
+ ```
34
+
35
+ Starting from 0.5 :
36
+
37
+ ```
38
+ Csv2Hash::Main.new(definition, file_path_or_data, ignore_blank_line: false)
39
+ ```
40
+
41
+ # Upgrading from 0.3 to 0.4
42
+
43
+ Signature of ```Csv2hash::Main#new``` has changed too
44
+
45
+ Prior to 0.4 :
46
+
47
+ ```
48
+ Csv2Hash::Main.new(definition, file_path_or_data, break_on_failure=true, ignore_blank_line=false)
49
+ ```
50
+
51
+ call ```.parse!``` for same result
52
+
53
+ Starting from 0.4 :
54
+
55
+ ```
56
+ Csv2Hash::Main.new(definition, file_path_or_data, ignore_blank_line=false)
57
+ ```
58
+
59
+ call ```.parse``` for same result
60
+
61
+ # Upgrading from 0.2 to 0.3
62
+
63
+ ```Csv2hash``` become an ```Module```, ```Csv2hash.new``` no longer works, please use ```Csv2hash::Main.new``` instead.
64
+ Signature of ```Csv2hash::Main#new``` has changed too
65
+
66
+ Prior to 0.3 :
67
+
68
+ ```
69
+ Csv2Hash.new(definition, file_path, break_on_failure=true, data_source=nil, ignore_blank_line=false)
70
+ ```
71
+
72
+ Starting from 0.3 :
73
+
74
+ ```
75
+ Csv2Hash::Main.new(definition, file_path_or_data, break_on_failure=true, ignore_blank_line=false)
76
+ ```
77
+
78
+ # Upgrading from 0.1 to 0.2
79
+
80
+ The signature of Definition#new has changed, the last parameter is a configuration hash, while in versions prior to 0.2 it was an integer (header_size) consider upgrading your code :
81
+
82
+ Prior to 0.2 :
83
+
84
+ ```
85
+ Csv2Hash::Definition.new(rules, type = Csv2Hash::Definition::COLLECTION, 1)
86
+ ```
87
+
88
+ Starting from 0.2 :
89
+
90
+ ```
91
+ Csv2Hash::Definition.new(rules, type = Csv2Hash::Definition::COLLECTION, header_size: 1)
92
+ ```
93
+
94
+ If no configuration is passed, header_size defaults remains to 0
data/bin/launch_irb CHANGED
File without changes
@@ -0,0 +1,21 @@
1
+ module Csv2hash
2
+ module StructureValidator
3
+ module Deprecation
4
+
5
+ OLD_MAX_COLUMN = 'MaxColumns'.freeze
6
+ OLD_MIN_COLUMN = 'MinColumns'.freeze
7
+ OLD_RULES_NAME = [ OLD_MIN_COLUMN, OLD_MAX_COLUMN ]
8
+ NEW_SYNTAX = { OLD_MIN_COLUMN => 'min_columns', OLD_MAX_COLUMN => 'max_columns' }
9
+
10
+ def check_params rule
11
+ if OLD_RULES_NAME.include? rule
12
+ warn "[DEPRECATION]: `#{rule}` is deprecated. Please use `#{NEW_SYNTAX[rule]}` instead."
13
+ NEW_SYNTAX[rule]
14
+ else
15
+ rule.to_s
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -1,18 +1,20 @@
1
- module Csv2hash::StructureValidator
2
- class MaxColumns
1
+ module Csv2hash
2
+ module StructureValidator
3
+ class MaxColumns
3
4
 
4
- include Csv2hash::StructureValidator::Validator
5
+ include Validator
5
6
 
6
- def initialize max_size
7
- @max_size = max_size
8
- end
7
+ def initialize max_size
8
+ @max_size = max_size
9
+ end
9
10
 
10
- def validate_line line
11
- line.size > @max_size
12
- end
11
+ def validate_line line
12
+ line.size > @max_size
13
+ end
13
14
 
14
- def error_message line
15
- "Too many columns (max. #{@max_size}) on line #{line}"
15
+ def error_message line
16
+ "Too many columns (max. #{@max_size}) on line #{line}"
17
+ end
16
18
  end
17
19
  end
18
- end
20
+ end
@@ -1,18 +1,20 @@
1
- module Csv2hash::StructureValidator
2
- class MinColumns
1
+ module Csv2hash
2
+ module StructureValidator
3
+ class MinColumns
3
4
 
4
- include Csv2hash::StructureValidator::Validator
5
+ include Validator
5
6
 
6
- def initialize min_size
7
- @min_size = min_size
8
- end
7
+ def initialize min_size
8
+ @min_size = min_size
9
+ end
9
10
 
10
- def validate_line line
11
- line.size < @min_size
12
- end
11
+ def validate_line line
12
+ line.size < @min_size
13
+ end
13
14
 
14
- def error_message line
15
- "Not enough columns (min. #{@min_size}) on line #{line}"
15
+ def error_message line
16
+ "Not enough columns (min. #{@min_size}) on line #{line}"
17
+ end
16
18
  end
17
19
  end
18
- end
20
+ end
@@ -1,31 +1,45 @@
1
- # require 'active_support/core_ext'
1
+ require 'active_support/core_ext'
2
2
 
3
- module Csv2hash::StructureValidator
4
- class ValidationError < StandardError ; end
3
+ require_relative 'structure_validator/deprecation'
5
4
 
6
- def validate_structure!
7
- # binding.pry
8
- definition.structure_rules.each do |rule, options|
9
- begin
10
- rule_instance(rule, options).validate! data_source
11
- rescue => e
12
- self.errors << { y: nil, x: nil, message: e.message, key: nil }
13
- raise if break_on_failure
5
+ module Csv2hash
6
+ module StructureValidator
7
+ include Deprecation
8
+
9
+ class ValidationError < StandardError ; end
10
+
11
+ MAX_COLUMN = 'max_columns'.freeze
12
+ MIN_COLUMN = 'min_columns'.freeze
13
+ RULES_NAME = [ MIN_COLUMN, MAX_COLUMN ]
14
+
15
+ def validate_structure!
16
+ definition.structure_rules.each do |rule, options|
17
+ begin
18
+ rule_instance(rule, options).validate! data_source
19
+ rescue => e
20
+ self.errors << { y: nil, x: nil, message: e.message, key: nil }
21
+ raise if break_on_failure
22
+ end
14
23
  end
15
24
  end
16
- end
17
25
 
18
- def rule_instance rule, options
19
- Csv2hash::StructureValidator.const_get(rule).new(options)
20
- # 'min_columns'.camelize.constantize.new
21
- end
26
+ def rule_instance rule, options
27
+ _rule = check_params rule
28
+ begin
29
+ StructureValidator.const_get(_rule.camelize).new(options)
30
+ rescue NameError => e
31
+ raise "Structure rule #{rule} unknow, please use one of these #{RULES_NAME}"
32
+ end
33
+ end
22
34
 
23
- module Validator
24
- def validate! source
25
- source.index { |line| validate_line line }.tap do |line|
26
- raise Csv2hash::StructureValidator::ValidationError, error_message(line) unless line.nil?
35
+ module Validator
36
+ def validate! source
37
+ source.index { |line| validate_line line }.tap do |line|
38
+ raise ValidationError, error_message(line) unless line.nil?
39
+ end
40
+ true
27
41
  end
28
- true
29
42
  end
43
+
30
44
  end
31
45
  end
@@ -1,3 +1,3 @@
1
1
  module Csv2hash
2
- VERSION = '0.6.0'
2
+ VERSION = '0.6.1'
3
3
  end
@@ -18,7 +18,7 @@ module Csv2hash
18
18
 
19
19
  context 'the csv with errors' do
20
20
  before do
21
- allow(definition).to receive(:structure_rules) {{ 'MaxColumns' => 2 }}
21
+ allow(definition).to receive(:structure_rules) {{ max_columns: 2 }}
22
22
  subject.parse
23
23
  end
24
24
  let(:data_source) do
@@ -30,13 +30,14 @@ module Csv2hash
30
30
 
31
31
  its(:csv_with_errors) { should be_kind_of CsvArray }
32
32
  it "adds structure error in first cell" do
33
+
33
34
  expect(subject.csv_with_errors.first[:message]).to eq 'Too many columns (max. 2) on line 1'
34
35
  end
35
36
  end
36
37
 
37
38
  context '#MaxColumns' do
38
39
  before do
39
- allow(definition).to receive(:structure_rules) {{ 'MaxColumns' => 2 }}
40
+ allow(definition).to receive(:structure_rules) {{ max_columns: 2 }}
40
41
  allow(subject).to receive(:break_on_failure) { true }
41
42
  end
42
43
 
@@ -62,7 +63,7 @@ module Csv2hash
62
63
 
63
64
  context '#MinColumns' do
64
65
  before do
65
- allow(definition).to receive(:structure_rules) {{ 'MinColumns' => 2 }}
66
+ allow(definition).to receive(:structure_rules) {{ min_columns: 2 }}
66
67
  allow(subject).to receive(:break_on_failure) { true }
67
68
  end
68
69
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv2hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel AZEMAR
@@ -92,12 +92,13 @@ files:
92
92
  - ".gitignore"
93
93
  - ".rspec"
94
94
  - ".travis.yml"
95
+ - CHANGELOG.md
95
96
  - Gemfile
96
97
  - Gemfile.lock
97
98
  - LICENSE
98
99
  - README.md
99
100
  - Rakefile
100
- - ReleaseNotes.md
101
+ - UPGRADE.md
101
102
  - bin/launch_irb
102
103
  - bin/load_rvm
103
104
  - coverage/.resultset.json.lock
@@ -119,6 +120,7 @@ files:
119
120
  - lib/csv2hash/parser/mapping.rb
120
121
  - lib/csv2hash/registry.rb
121
122
  - lib/csv2hash/structure_validator.rb
123
+ - lib/csv2hash/structure_validator/deprecation.rb
122
124
  - lib/csv2hash/structure_validator/max_columns.rb
123
125
  - lib/csv2hash/structure_validator/min_columns.rb
124
126
  - lib/csv2hash/validator.rb