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