# File lib/ruote/util/filter.rb, line 336
    def _take(field, value, matches, m, v)

      unless @hash.has_key?('~~~')

        @hash['~~~'] = @hash.keys.select { |k|
          ! k.match(/^\~+$/)
        }.each_with_object({}) { |k, h|
          h[k] = @hash.delete(k)
        }

        @hash.merge!(@hash['~~'])
        @hash.merge!(@hash['~~~']) if m == 'discard' && v != 'all'
      end

      if m == 'take'
        @hash[field] = @hash['~~~'][field]
      elsif v != 'all'
        @hash.delete(field)
      end

      nil
    end