class Realize::Filter::ByKeyValue

This transformer can take an array or a hash (put in array) and it understands how to select only the records where a key's value statically equates to the transformer's value.

Attributes

desired_value[R]
key[R]
value[R]

Public Class Methods

new(key:, value:) click to toggle source
# File lib/realize/filter/by_key_value.rb, line 25
def initialize(key:, value:)
  raise ArgumentError, 'key is required' if key.to_s.empty?

  @key    = key
  @value  = value

  freeze
end

Public Instance Methods

transform(resolver, value, _time, _record) click to toggle source
# File lib/realize/filter/by_key_value.rb, line 34
def transform(resolver, value, _time, _record)
  records = array(value)

  records.select do |record|
    record_value = resolver.get(record, key)

    record_value == desired_value
  end
end