Sha256: c58a0536042398e8ed46aa2bb89e5a3ae894384a7362bc24546670bcd7c37460
Contents?: true
Size: 1 KB
Versions: 7
Compression:
Stored size: 1 KB
Contents
#Contains a couple shared methods for Processors. module Brakeman::ProcessorHelper #Sets the current module. def process_module exp module_name = class_name(exp[1]).to_s prev_module = @current_module if prev_module @current_module = "#{prev_module}::#{module_name}" else @current_module = module_name end process exp[2] @current_module = prev_module exp end #Returns a class name as a Symbol. def class_name exp case exp when Sexp case exp.node_type when :const exp[1] when :lvar exp[1].to_sym when :colon2 "#{class_name(exp[1])}::#{exp[2]}".to_sym when :colon3 "::#{exp[1]}".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 end
Version data entries
7 entries across 7 versions & 1 rubygems