Sha256: f5fdba02bbb5d0e498e5b64d9d5f045512b679751f7ef4b052d0f72e4feed788

Contents?: true

Size: 724 Bytes

Versions: 5

Compression:

Stored size: 724 Bytes

Contents

module Mutations
  class InputFilter
    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

5 entries across 5 versions & 1 rubygems

Version Path
mutations-0.9.1 lib/mutations/input_filter.rb
mutations-0.9.0 lib/mutations/input_filter.rb
mutations-0.8.3 lib/mutations/input_filter.rb
mutations-0.8.2 lib/mutations/input_filter.rb
mutations-0.8.1 lib/mutations/input_filter.rb