lib/stockboy/source_record.rb
require 'stockboy/mapped_record'
module Stockboy
# This represents the raw "input" side of a {CandidateRecord}
#
# It provides access to the original field values before mapping or
# translation as hash keys.
#
# @example
# input = SourceRecord.new(
# {check_in: "2012-12-12"},
# {"RawCheckIn" => "2012-12-12"})
#
# input["RawCheckIn"] # => "2012-12-12"
# input.check_in # => "2012-12-12"
#
class SourceRecord < MappedRecord
# Initialize a new instance
#
# @param [Hash{Symbol=>Object}] mapped_fields
# Represents the raw values mapped to the final attribute names
# @param [Hash] data_fields
# The raw input fields with original key values
#
def initialize(mapped_fields, data_fields)
@data_fields = data_fields
super(mapped_fields)
end
# Access a raw field value by the original input field name
#
# @param [String] key
#
def [](key)
key = key.to_s if key.is_a? Symbol
@data_fields[key]
end
end
end