csv_piper 0.1.6 → 0.1.7
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 +4 -4
- data/README.md +1 -1
- data/csv_piper.gemspec +2 -2
- data/lib/csv_piper/piper.rb +3 -3
- data/lib/csv_piper/processors/collect_errors.rb +2 -2
- data/lib/csv_piper/version.rb +1 -1
- metadata +1 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5eae40f149b1416603bd8997b7cdea3c61b16a8f
|
4
|
+
data.tar.gz: c883cdc281fbb68b0252b026bb97b52bc51ad711
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98f8eddd94969df9b2c25a5c668e3a8d4d35b17290b63bfba7661789ebdfbe91527bcb46f40405f468730f7cb67b3906a9d76c4e7934ae188cbed64c0ba27d02
|
7
|
+
data.tar.gz: 3bfd4461527a2748d9e64c1dfef9bebbd05f440a52ca2cfaf9b9a6d7cd5231f2858b76f55418c9c2b2983a98b6693b83edd0f0498bc61db8668cc9527104a83b
|
data/README.md
CHANGED
@@ -165,7 +165,7 @@ Over time we will collect a bunch of general purpose processors that anyone can
|
|
165
165
|
|
166
166
|
* `Copy`: Copies or maps key-values from the source row into the transformed object.
|
167
167
|
* `CollectOutput`: Collects the transformed object of every row that is passed through it.
|
168
|
-
* `CollectErrors`: Collects
|
168
|
+
* `CollectErrors`: Collects each non-empty errors hash against every row that is passed through it.
|
169
169
|
* `CreateActiveModel`: Uses the transformed object as attributes and creates using it (Works with ActiveRecord models). Merges errors from model into row errors (Assumes ActiveModel::Errors interface).
|
170
170
|
|
171
171
|
By using `CollectOutput` and to a lesser extent `CollectErrors` you will start to build up objects in memory. For very large csv files you might not want to use these convenience processors and rather create a new processor that does whatever you need with the row (Ie. log, write to db) which will then be discarded rather than collected.
|
data/csv_piper.gemspec
CHANGED
@@ -23,6 +23,6 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
25
|
spec.add_development_dependency "rspec", "~> 3"
|
26
|
-
spec.add_development_dependency 'sqlite3', '~> 1.3'
|
27
|
-
spec.add_development_dependency 'activerecord', '~> 4.2'
|
26
|
+
spec.add_development_dependency 'sqlite3', '~> 1.3'
|
27
|
+
spec.add_development_dependency 'activerecord', '~> 4.2'
|
28
28
|
end
|
data/lib/csv_piper/piper.rb
CHANGED
@@ -37,12 +37,12 @@ module CsvPiper
|
|
37
37
|
|
38
38
|
def process_csv_body
|
39
39
|
csv.each.with_index(FIRST_DATA_LINE_INDEX) do |row, index|
|
40
|
-
processed_data, row_errors = process_row(
|
40
|
+
processed_data, row_errors = process_row(row.to_hash, Errors::Row.new(index))
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
def process_row(
|
45
|
-
pre_processed_row, row_errors = pre_processors.reduce([row,
|
44
|
+
def process_row(row, row_errors)
|
45
|
+
pre_processed_row, row_errors = pre_processors.reduce([row, row_errors]) do |memo, processor|
|
46
46
|
output = processor.process(*memo)
|
47
47
|
return if output.nil?
|
48
48
|
output
|
@@ -6,8 +6,8 @@ module CsvPiper
|
|
6
6
|
@errors = {}
|
7
7
|
end
|
8
8
|
|
9
|
-
def process(source, transformed,
|
10
|
-
@errors[
|
9
|
+
def process(source, transformed, row_errors)
|
10
|
+
@errors[row_errors.row_index] = row_errors.errors unless row_errors.empty?
|
11
11
|
[transformed, errors]
|
12
12
|
end
|
13
13
|
end
|
data/lib/csv_piper/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csv_piper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jarrod Sibbison
|
@@ -59,9 +59,6 @@ dependencies:
|
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.3'
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 1.3.10
|
65
62
|
type: :development
|
66
63
|
prerelease: false
|
67
64
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,9 +66,6 @@ dependencies:
|
|
69
66
|
- - "~>"
|
70
67
|
- !ruby/object:Gem::Version
|
71
68
|
version: '1.3'
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 1.3.10
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
70
|
name: activerecord
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,9 +73,6 @@ dependencies:
|
|
79
73
|
- - "~>"
|
80
74
|
- !ruby/object:Gem::Version
|
81
75
|
version: '4.2'
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: 4.2.4
|
85
76
|
type: :development
|
86
77
|
prerelease: false
|
87
78
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -89,9 +80,6 @@ dependencies:
|
|
89
80
|
- - "~>"
|
90
81
|
- !ruby/object:Gem::Version
|
91
82
|
version: '4.2'
|
92
|
-
- - ">="
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: 4.2.4
|
95
83
|
description: Simple wrapper to process csv's with a pipeline of testable processors.
|
96
84
|
email:
|
97
85
|
- ''
|