Class: ETL::Transform::DecodeTransform
- Defined in:
- lib/etl/transform/decode_transform.rb
Overview
Transform which decodes coded values
Instance Attribute Summary collapse
-
#decode_table_delimiter ⇒ Object
Returns the value of attribute decode_table_delimiter.
-
#decode_table_path ⇒ Object
Returns the value of attribute decode_table_path.
-
#default_value ⇒ Object
Returns the value of attribute default_value.
Attributes inherited from Transform
#configuration, #control, #name
Instance Method Summary collapse
-
#decode_table ⇒ Object
Get the decode table.
-
#initialize(control, name, configuration = {}) ⇒ DecodeTransform
constructor
Initialize the transformer.
-
#transform(name, value, row) ⇒ Object
Transform the value.
Methods inherited from Transform
Constructor Details
#initialize(control, name, configuration = {}) ⇒ DecodeTransform
Initialize the transformer
Configuration options:
-
:decode_table_path
: The path to the decode table (defaults to ‘decode.txt’) -
:decode_table_delimiter
: The decode table delimiter (defaults to ‘:’) -
:default_value
: The default value to use (defaults to ‘No Value’)
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/etl/transform/decode_transform.rb', line 17 def initialize(control, name, configuration={}) super if configuration[:decode_table_path] configuration[:decode_table_path] = File.join(File.dirname(control.file), configuration[:decode_table_path]) end @decode_table_path = (configuration[:decode_table_path] || 'decode.txt') @decode_table_delimiter = (configuration[:decode_table_delimiter] || ':') @default_value = (configuration[:default_value] || 'No Value') end |
Instance Attribute Details
#decode_table_delimiter ⇒ Object
Returns the value of attribute decode_table_delimiter.
7 8 9 |
# File 'lib/etl/transform/decode_transform.rb', line 7 def decode_table_delimiter @decode_table_delimiter end |
#decode_table_path ⇒ Object
Returns the value of attribute decode_table_path.
5 6 7 |
# File 'lib/etl/transform/decode_transform.rb', line 5 def decode_table_path @decode_table_path end |
#default_value ⇒ Object
Returns the value of attribute default_value.
9 10 11 |
# File 'lib/etl/transform/decode_transform.rb', line 9 def default_value @default_value end |
Instance Method Details
#decode_table ⇒ Object
Get the decode table
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/etl/transform/decode_transform.rb', line 35 def decode_table unless @decode_table @decode_table = {} open(decode_table_path).each do |line| code, value = line.strip.split(decode_table_delimiter) if code && code.length > 0 @decode_table[code] = value else @default_value = value end end end @decode_table end |
#transform(name, value, row) ⇒ Object
Transform the value
30 31 32 |
# File 'lib/etl/transform/decode_transform.rb', line 30 def transform(name, value, row) decode_table[value] || default_value end |