Class: Mutations::DuckFilter

Inherits:
AdditionalFilter show all
Defined in:
lib/mutations/duck_filter.rb

Instance Attribute Summary

Attributes inherited from InputFilter

#options

Instance Method Summary collapse

Methods inherited from AdditionalFilter

inherited

Methods inherited from InputFilter

#default, default_options, #discard_empty?, #discard_invalid?, #discard_nils?, #has_default?, #initialize

Constructor Details

This class inherits a constructor from Mutations::InputFilter

Instance Method Details

#filter(data) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/mutations/duck_filter.rb', line 8

def filter(data)

  # Handle nil case
  if data.nil?
    return [nil, nil] if options[:nils]
    return [nil, :nils]
  end

  # Ensure the data responds to each of the methods
  Array(options[:methods]).each do |method|
    return [data, :duck] unless data.respond_to?(method)
  end

  # We win, it's valid!
  [data, nil]
end