Sha256: 91472053bd816be866eefdaeda6dc62e1f0eb0a9415a3613061f0a62857b14ac

Contents?: true

Size: 744 Bytes

Versions: 3

Compression:

Stored size: 744 Bytes

Contents

module Mutations
  class InputFilter
    @default_options = {}

    def self.default_options
      @default_options
    end

    attr_accessor :options

    def initialize(opts = {})
      self.options = (self.class.default_options || {}).merge(opts)
    end

    # returns -> [sanitized data, error]
    # If an error is returned, then data will be nil
    def filter(data)
      [data, nil]
    end

    def has_default?
      options.has_key?(:default)
    end

    def default
      options[:default]
    end

    # Only relevant for optional params
    def discard_nils?
      !options[:nils]
    end

    def discard_empty?
      options[:discard_empty]
    end

    def discard_invalid?
      options[:discard_invalid]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mutations-0.8.0 lib/mutations/input_filter.rb
mutations-0.7.2 lib/mutations/input_filter.rb
mutations-0.7.1 lib/mutations/input_filter.rb