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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 905a33e7c5811a97e176750e1eba082c0cf846a2
4
- data.tar.gz: 912d1312882a12ddc429528a5f5d6061d0da8bd3
3
+ metadata.gz: 16e3d18410f3a87ee22a40c1f58d5d3ae1b6fd7a
4
+ data.tar.gz: c910de2e2455ebe7bc5a50a1ab5c03bb197d7a13
5
5
  SHA512:
6
- metadata.gz: f58921c3be80cd908dd24e13ae914219c0af82668627c1d496f8382b923eb847ee217f96a335eedc79f0a7cb2efb48d31fc38bf6c7fa1c0f98467093c90eb917
7
- data.tar.gz: 1d4d9bd331c5dc05577ef77d1537a89c7dc0d900ee0cab2e58d7133f05dc4d85a912b62b3ae8620521510eb7cb2449a3b5cfbb2577504135b0c30d33b1f2c79b
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, :file
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, :file, :filenames, :encoding
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
@@ -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 = instance_exec(&dsl_class.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
@@ -1,3 +1,3 @@
1
1
  module ArcFurnace
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
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.7
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-11-30 00:00:00.000000000 Z
12
+ date: 2015-12-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: msgpack