arc-furnace 0.1.7 → 0.1.8
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/lib/arc-furnace/csv_source.rb +2 -2
- data/lib/arc-furnace/multi_csv_source.rb +2 -2
- data/lib/arc-furnace/pipeline.rb +12 -1
- data/lib/arc-furnace/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16e3d18410f3a87ee22a40c1f58d5d3ae1b6fd7a
|
4
|
+
data.tar.gz: c910de2e2455ebe7bc5a50a1ab5c03bb197d7a13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78c1d5a8af9e8f3d24b10fbb38b86cb253945f7feacb1dd1edf1b7f8b54575d313b6a674a45c28a2c25b1848ef265d6a244909b9c052e4a2c62001836e1feb73
|
7
|
+
data.tar.gz: 2a9fa8297a8eb2754c9dfa717740a373a06f3ae9fb267077e85974ecc341f574dcc1138b9566362edab0ebcd329c14803eae9865b4f2ce98d01fa47520cf3d06
|
@@ -5,8 +5,8 @@ require 'csv'
|
|
5
5
|
module ArcFurnace
|
6
6
|
class CSVSource < Source
|
7
7
|
include CSVToHashWithDuplicateHeaders
|
8
|
-
private_attr_reader :csv
|
9
|
-
attr_reader :value
|
8
|
+
private_attr_reader :csv
|
9
|
+
attr_reader :value, :file
|
10
10
|
|
11
11
|
def initialize(filename: , encoding: 'UTF-8')
|
12
12
|
@file = File.open(filename, encoding: encoding)
|
@@ -5,8 +5,8 @@ require 'csv'
|
|
5
5
|
module ArcFurnace
|
6
6
|
class MultiCSVSource < Source
|
7
7
|
include CSVToHashWithDuplicateHeaders
|
8
|
-
private_attr_reader :csv, :
|
9
|
-
attr_reader :value
|
8
|
+
private_attr_reader :csv, :filenames, :encoding
|
9
|
+
attr_reader :value, :file
|
10
10
|
|
11
11
|
def initialize(filenames: , encoding: 'UTF-8')
|
12
12
|
@encoding = encoding
|
data/lib/arc-furnace/pipeline.rb
CHANGED
@@ -153,7 +153,7 @@ module ArcFurnace
|
|
153
153
|
dsl_class.intermediates_map.each do |key, instance|
|
154
154
|
intermediates_map[key] = instance_exec(&instance) if instance
|
155
155
|
end
|
156
|
-
@sink_node =
|
156
|
+
@sink_node = exec_with_error_handling(&dsl_class.sink_node)
|
157
157
|
@sink_source = intermediates_map[dsl_class.sink_source]
|
158
158
|
end
|
159
159
|
|
@@ -175,6 +175,17 @@ module ArcFurnace
|
|
175
175
|
self.params[key] || self.intermediates_map[key] || (raise "When processing node #{node_id}: Unknown key #{key}!")
|
176
176
|
end
|
177
177
|
|
178
|
+
def exec_with_error_handling(&block)
|
179
|
+
instance_exec(&block) if block_given?
|
180
|
+
rescue CSV::MalformedCSVError
|
181
|
+
params = sink_source.params
|
182
|
+
raise "File #{find_root_source(params).file.path} cannot be processed."
|
183
|
+
end
|
184
|
+
|
185
|
+
def find_root_source(params)
|
186
|
+
source = params[:source]
|
187
|
+
source = params[:source] while source.params[:source]
|
188
|
+
end
|
178
189
|
end
|
179
190
|
end
|
180
191
|
end
|
data/lib/arc-furnace/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arc-furnace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Spangenberger
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|