module Brakeman::ProcessorHelper
Contains a couple shared methods for Processors.
Public Instance Methods
current_file()
click to toggle source
# File lib/brakeman/processors/lib/processor_helper.rb, line 76 def current_file case when @current_file @current_file when @current_class.is_a?(Brakeman::Collection) @current_class.file when @current_module.is_a?(Brakeman::Collection) @current_module.file else nil end end
process_all(exp)
click to toggle source
# File lib/brakeman/processors/lib/processor_helper.rb, line 3 def process_all exp exp.each_sexp do |e| process e end exp end
process_all!(exp)
click to toggle source
# File lib/brakeman/processors/lib/processor_helper.rb, line 10 def process_all! exp exp.map! do |e| if sexp? e process e else e end end exp end
process_call_args(exp)
click to toggle source
Process the arguments of a method call. Does not store results.
This method is used because Sexp#args
and Sexp#arglist
create new objects.
# File lib/brakeman/processors/lib/processor_helper.rb, line 25 def process_call_args exp exp.each_arg do |a| process a if sexp? a end exp end
process_call_defn?(exp)
click to toggle source
e.g. private defn
# File lib/brakeman/processors/lib/processor_helper.rb, line 64 def process_call_defn? exp if call? exp and exp.target.nil? and node_type? exp.first_arg, :defn, :defs and [:private, :public, :protected].include? exp.method prev_visibility = @visibility @visibility = exp.method process exp.first_arg @visibility = prev_visibility exp else false end end
process_class(exp)
click to toggle source
# File lib/brakeman/processors/lib/processor_helper.rb, line 33 def process_class exp current_class = @current_class @current_class = class_name exp[1] process_all exp.body @current_class = current_class exp end
process_module(exp) { || ... }
click to toggle source
Sets the current module.
# File lib/brakeman/processors/lib/processor_helper.rb, line 42 def process_module exp module_name = class_name(exp.class_name).to_s prev_module = @current_module if prev_module @current_module = "#{prev_module}::#{module_name}" else @current_module = module_name end if block_given? yield else process_all exp.body end @current_module = prev_module exp end