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 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