Class: Cranium::DataTransformer
- Inherits:
-
Object
- Object
- Cranium::DataTransformer
- Defined in:
- lib/cranium/data_transformer.rb
Instance Method Summary collapse
-
#initialize(source, target) ⇒ DataTransformer
constructor
A new instance of DataTransformer.
- #transform(&block) ⇒ Object
Constructor Details
#initialize(source, target) ⇒ DataTransformer
Returns a new instance of DataTransformer.
5 6 7 8 9 10 |
# File 'lib/cranium/data_transformer.rb', line 5 def initialize(source, target) @source, @target = source, target @index = Cranium::Transformation::Index.new @target_fields = @target.fields.keys @record = Cranium::TransformationRecord.new @source.fields.keys, @target_fields end |
Instance Method Details
#transform(&block) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/cranium/data_transformer.rb', line 14 def transform(&block) raise StandardError, "Source definition '#{@target.name}' cannot overrride the file name because it is a transformation target" if @target.file_name_overriden? CSV.open "#{Cranium.configuration.upload_path}/#{@target.file}", "w:#{@target.encoding}", (@target) do |target_file| @target_file = target_file @source.files.each do |input_file| transform_input_file File.join(Cranium.configuration.upload_path, input_file), block end end @target.resolve_files end |