Sha256: 1f83c269157c8cb540134bf6a2e10b10456d95c031f43145e0117cb173518df4
Contents?: true
Size: 1007 Bytes
Versions: 37
Compression:
Stored size: 1007 Bytes
Contents
require 'arc-furnace/node' module ArcFurnace class Hash < Node attr_reader :key_column private_attr_reader :source, :hash def initialize(source: , key_column:) @source = source @key_column = key_column @hash = {} end # Pass a block that accepts two argument, the join key # for each value and the value def each(&block) hash.each(&block) end # Called at the end of processing all rows; do any clean-up or state saving here. def finalize end def prepare loop do break if source.empty? row = source.row key = row[key_column] if key if hash.include?(key) error_handler.duplicate_primary_key(duplicate_row: row, key: key, node_id: node_id) end hash[key] = row else error_handler.missing_primary_key(source_row: row, node_id: node_id) end end end def get(primary_key) hash[primary_key] end end end
Version data entries
37 entries across 37 versions & 1 rubygems