class Dataflow::Nodes::SelectKeysNode

Performs a select operation on its dependency.

Public Instance Methods

export() click to toggle source
# File lib/dataflow/nodes/select_keys_node.rb, line 11
def export
  data_node.export(keys: keys)
end

Private Instance Methods

compute_batch(records:) click to toggle source
# File lib/dataflow/nodes/select_keys_node.rb, line 17
def compute_batch(records:)
  keys_tokens = keys.map { |k| [k, record_dig_tokens(key: k, use_sym: dependencies.first.use_symbols?)] }
  select_keys(records: records, keys_tokens: keys_tokens)
end
select_keys(records:, keys_tokens:) click to toggle source
# File lib/dataflow/nodes/select_keys_node.rb, line 22
def select_keys(records:, keys_tokens:)
  records.map do |base_record|
    new_record = {}
    keys_tokens.each do |key, tokens|
      value = base_record.dig(*tokens)
      next unless value.present?

      add_value_to_record(record: new_record, key: key, value: value)
    end

    next unless new_record.present?
    new_record
  end.compact
end