class ActiveInteraction::ObjectFilter

@private

Private Instance Methods

convert(value) click to toggle source
# File lib/active_interaction/filters/object_filter.rb, line 48
def convert(value)
  result = converter(value)

  if result.nil?
    [value, Filter::Error.new(self, :invalid_type)]
  else
    [result, nil]
  end
rescue StandardError => e
  raise e if e.is_a?(InvalidConverterError)

  [value, Filter::Error.new(self, :invalid_type)]
end
converter(value) click to toggle source
# File lib/active_interaction/filters/object_filter.rb, line 62
def converter(value)
  return value unless (converter = options[:converter])

  case converter
  when Proc
    converter.call(value)
  when Symbol
    klass.public_send(converter, value)
  else
    raise InvalidConverterError,
      "#{converter.inspect} is not a valid converter"
  end
end
klass() click to toggle source
# File lib/active_interaction/filters/object_filter.rb, line 33
def klass
  klass_name = options.fetch(:class, name).to_s.camelize
  Object.const_get(klass_name)
rescue NameError
  raise InvalidNameError, "class #{klass_name.inspect} does not exist"
end
matches?(value) click to toggle source
# File lib/active_interaction/filters/object_filter.rb, line 40
def matches?(value)
  return false if value == nil # rubocop:disable Style/NilComparison

  value.class <= klass
rescue NoMethodError
  false
end