Module: Brakeman::ProcessorHelper
- Included in:
 - AliasProcessor, BaseCheck, BaseProcessor, BasicProcessor
 
- Defined in:
 - lib/brakeman/processors/lib/processor_helper.rb
 
Overview
Contains a couple shared methods for Processors.
Instance Method Summary collapse
- #current_file ⇒ Object
 - #process_all(exp) ⇒ Object
 - #process_all!(exp) ⇒ Object
 - 
  
    
      #process_call_args(exp)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Process the arguments of a method call.
 - 
  
    
      #process_call_defn?(exp)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
e.g.
 - #process_class(exp) ⇒ Object
 - 
  
    
      #process_module(exp)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Sets the current module.
 
Instance Method Details
#current_file ⇒ Object
      76 77 78 79 80 81 82 83 84 85 86 87  | 
    
      # 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) ⇒ Object
      3 4 5 6 7 8  | 
    
      # 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) ⇒ Object
      10 11 12 13 14 15 16 17 18 19 20  | 
    
      # 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) ⇒ Object
Process the arguments of a method call. Does not store results.
This method is used because Sexp#args and Sexp#arglist create new objects.
      25 26 27 28 29 30 31  | 
    
      # 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) ⇒ Boolean
e.g. private defn
      64 65 66 67 68 69 70 71 72 73 74  | 
    
      # 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) ⇒ Object
      33 34 35 36 37 38 39  | 
    
      # 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) ⇒ Object
Sets the current module.
      42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61  | 
    
      # 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  |