class Dataflow::Nodes::Transformation::ToTimeNode

Transforms the given keys' values to Time.

Public Instance Methods

compute_batch(records:) click to toggle source
# File lib/dataflow/nodes/transformation/to_time_node.rb, line 21
def compute_batch(records:)
  key_tokens = keys.map do |key|
    record_dig_tokens(key: key, use_sym: dependencies.first.use_symbols?)
  end

  records.each do |record|
    key_tokens.each_with_index do |tokens, index|
      value = record.dig(*tokens)
      next unless value.present?

      value = value.to_time
      add_value_to_record(record: record, key: keys[index], value: value)
    end
  end

  records
end
valid_for_computation?() click to toggle source
# File lib/dataflow/nodes/transformation/to_time_node.rb, line 12
def valid_for_computation?
  # It does not make sense to use this node without any keys specified.
  if (keys || []).count.zero?
    errors.add(:keys, "#{self.class} keys must contain at least 1 value")
  end

  super
end