# File lib/ruote/util/filter.rb, line 48
  def self.filter(filter, hash, options={})

    raise ArgumentError.new(
      "not a filter : #{filter}"
    ) unless filter.is_a?(Array)

    filters = or_split(filter)

    result = nil

    filters.each do |fl|

      result = begin
        do_filter(fl, hash, options)
      rescue ValidationError => err
        err
      end

      return result if result.is_a?(Hash)
        # success
    end

    raise(result) if result.is_a?(ValidationError)

    result
  end