Contains a couple shared methods for Processors.
Returns a class name as a Symbol.
# File lib/brakeman/processors/lib/processor_helper.rb, line 51 def class_name exp case exp when Sexp case exp.node_type when :const exp.value when :lvar exp.value.to_sym when :colon2 "#{class_name(exp.lhs)}::#{exp.rhs}".to_sym when :colon3 "::#{exp.value}".to_sym when :call process exp when :self @current_class || @current_module || nil else raise "Error: Cannot get class name from #{exp}" end when Symbol exp when nil nil else raise "Error: Cannot get class name from #{exp}" end end
# File lib/brakeman/processors/lib/processor_helper.rb, line 3 def process_all exp exp.each_sexp do |e| process e end exp end
# 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 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
Sets the current module.
# File lib/brakeman/processors/lib/processor_helper.rb, line 33 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 process_all exp.body @current_module = prev_module exp end
Generated with the Darkfish Rdoc Generator 2.