Sha256: 037d9023655faf5cee57530a63625c0b0773edca7422bd9d997593eb4d6c5dda

Contents?: true

Size: 657 Bytes

Versions: 13

Compression:

Stored size: 657 Bytes

Contents

class Cranium::TransformationRecord

  attr_reader :data



  def initialize(source_fields, target_fields)
    @source_fields, @target_fields = source_fields, target_fields
  end



  def input_data=(values)
    @data = Hash[@source_fields.zip values]
  end



  def [](field)
    @data[field]
  end



  def []=(field, value)
    @data[field] = value
  end



  def split_field(field, options)
    values = @data[field].split(options[:by])

    options[:into].each_with_index do |target_field, index|
      @data[target_field] = values[index] || options[:default_value] || values.last
    end
  end



  def has_key?(key)
    @data.has_key? key
  end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
cranium-0.8.1 lib/cranium/transformation_record.rb
cranium-0.8 lib/cranium/transformation_record.rb
cranium-0.7 lib/cranium/transformation_record.rb
cranium-0.6.1 lib/cranium/transformation_record.rb
cranium-0.5 lib/cranium/transformation_record.rb
cranium-0.4.3 lib/cranium/transformation_record.rb
cranium-0.4.2 lib/cranium/transformation_record.rb
cranium-0.4.1 lib/cranium/transformation_record.rb
cranium-0.4 lib/cranium/transformation_record.rb
cranium-0.3.1 lib/cranium/transformation_record.rb
cranium-0.3.0 lib/cranium/transformation_record.rb
cranium-0.2.1 lib/cranium/transformation_record.rb
cranium-0.2.0 lib/cranium/transformation_record.rb