valigator-csv 1.0.0 → 1.0.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: c6fbf0f123746a2514a558c87d27825c0134835f
4
- data.tar.gz: 7c5bba057ab2eaac454956b82104cadea6813e84
3
+ metadata.gz: 1efa995498cf14a8bf892006e140abb02e3aee2e
4
+ data.tar.gz: 5b26ffad290e8334a508381d8709c15d07c31f19
5
5
  SHA512:
6
- metadata.gz: 50277157bc3a7f63d94bba35ccf4fdadb3cc3f4c4a6ec401f6aeb43a9e2e373d405417ac71d53b8953b6f58376e847b4a0bf4149f6686f16977a697626256f32
7
- data.tar.gz: ec89294d043924afaee7eb7d1407d5ed92d9f1e193c3fec3da331c77967158b1a63143b9ddae51535d56fe639a3875b4aa188b007bd262da8d71e437e7307873
6
+ metadata.gz: ec34eacd57451041c1e2121387becb196fd3e0f3201008ecfaec658801de839c1f0678a770d27a3aa3984a88485a0b4d7831caa1f4200894c6a39c2493c805b4
7
+ data.tar.gz: 83a1ce0eafcad4816753b4c06929e949e655fd18b3a0f999d4d27f0b5c57a7c097976e28f13f6616a81fbb2493ee583380e02844e012d9c054318e508f50e6f8
@@ -1,6 +1,5 @@
1
1
  require 'csvlint'
2
2
  require 'active_support/core_ext/string/filters'
3
- require 'active_support/hash_with_indifferent_access'
4
3
 
5
4
  module Valigator
6
5
  module CSV
@@ -27,7 +26,7 @@ module Valigator
27
26
 
28
27
  def check_with_csvlint(options = {})
29
28
  File.open(filename, "r:#{options[:encoding] || 'UTF-8'}") do |file|
30
- validator = ::Csvlint::Validator.new(file, {}, build_schema(options))
29
+ validator = ::Csvlint::Validator.new(file, build_dialect(options), build_schema(options))
31
30
 
32
31
  validator.errors.each { |error| add_to_errors error }
33
32
  validator.warnings.each { |warning| add_to_errors warning }
@@ -36,6 +35,14 @@ module Valigator
36
35
 
37
36
 
38
37
 
38
+ def build_dialect(options = {})
39
+ return {} unless options[:dialect]
40
+
41
+ stringify_keys options[:dialect]
42
+ end
43
+
44
+
45
+
39
46
  def build_schema(options = {})
40
47
  return unless options[:headers]
41
48
 
@@ -46,7 +53,7 @@ module Valigator
46
53
 
47
54
  def build_header_fields(options = {})
48
55
  options[:headers].map do |header|
49
- header_definition = JSON.parse JSON.dump(header)
56
+ header_definition = stringify_keys(header)
50
57
 
51
58
  ::Csvlint::Field.new(header_definition["name"], header_definition["constraints"])
52
59
  end
@@ -54,6 +61,12 @@ module Valigator
54
61
 
55
62
 
56
63
 
64
+ def stringify_keys(hash)
65
+ JSON.parse JSON.dump(hash)
66
+ end
67
+
68
+
69
+
57
70
  def add_to_errors(original_error)
58
71
  return if original_error.type == :encoding
59
72
 
@@ -1,5 +1,5 @@
1
1
  module Valigator
2
2
  module CSV
3
- VERSION = "1.0.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
5
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "csvlint"
21
+ spec.add_runtime_dependency "csvlint"
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.10"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valigator-csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Nagy
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-11-16 00:00:00.000000000 Z
12
+ date: 2015-11-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: csvlint