Sha256: c32f09bb59b464a6256d8862270e15fc4155a70217f937c5d338b069ba693a13

Contents?: true

Size: 634 Bytes

Versions: 3

Compression:

Stored size: 634 Bytes

Contents

require 'set'

module Might
  #
  class FilterParameters < Set
    FilterError = Class.new(KeyError)

    # Find filter by name
    # @param name [String]
    # @return [Might::FilterParameter, nil]
    #
    def [](name)
      detect { |filter| filter.name == name }
    end

    # Find filter by name or raise error
    # @param name [String]
    # @return [Might::FilterParameter]
    # @raise FilterError
    #
    def fetch(name)
      if (filter = self[name])
        filter
      else
        fail FilterError, "filter not found: #{name.inspect}"
      end
    end

    def map(&block)
      dup.map!(&block)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
might-0.6.0 lib/might/filter_parameters.rb
might-0.5.2 lib/might/filter_parameters.rb
might-0.5.1 lib/might/filter_parameters.rb