# File lib/brakeman/tracker/controller.rb, line 106
    def before_filter_to_hash processor, args
      filter = {}

      #Process args for the uncommon but possible situation
      #in which some variables are used in the filter.
      args.each do |a|
        if sexp? a
          a = processor.process_default a
        end
      end

      filter[:methods] = []

      args.each do |a|
        filter[:methods] << a[1] if a.node_type == :lit
      end

      if args[-1].node_type == :hash
        option = args[-1][1][1]
        value = args[-1][2]
        case value.node_type
        when :array
          filter[option] = value[1..-1].map {|v| v[1] }
        when :lit, :str
          filter[option] = value[1]
        else
          Brakeman.debug "[Notice] Unknown before_filter value: #{option} => #{value}"
        end
      else
        filter[:all] = true
      end

      filter
    end