class Brakeman::Processor
Makes calls to the appropriate processor.
The ControllerProcessor
, TemplateProcessor
, and ModelProcessor
will update the Tracker
with information about what is parsed.
Public Class Methods
new(app_tree, options)
click to toggle source
# File lib/brakeman/processor.rb, line 15 def initialize(app_tree, options) @tracker = Tracker.new(app_tree, self, options) end
Public Instance Methods
process_config(src, file_name)
click to toggle source
Process configuration file source
# File lib/brakeman/processor.rb, line 24 def process_config src, file_name ConfigProcessor.new(@tracker).process_config src, file_name end
process_controller(src, file_name)
click to toggle source
Process controller source. file_name
is used for reporting
# File lib/brakeman/processor.rb, line 39 def process_controller src, file_name if contains_class? src ControllerProcessor.new(@tracker).process_controller src, file_name else LibraryProcessor.new(@tracker).process_library src, file_name end end
process_controller_alias(name, src, only_method = nil, file = nil)
click to toggle source
Process variable aliasing in controller source and save it in the tracker.
# File lib/brakeman/processor.rb, line 49 def process_controller_alias name, src, only_method = nil, file = nil ControllerAliasProcessor.new(@tracker, only_method).process_controller name, src, file end
process_gems(gem_files)
click to toggle source
Process Gemfile
# File lib/brakeman/processor.rb, line 29 def process_gems gem_files GemProcessor.new(@tracker).process_gems gem_files end
process_initializer(file_name, src)
click to toggle source
Process source for initializing files
# File lib/brakeman/processor.rb, line 90 def process_initializer file_name, src res = BaseProcessor.new(@tracker).process_file src, file_name res = AliasProcessor.new(@tracker).process_safely res, nil, file_name @tracker.initializers[file_name] = res end
process_lib(src, file_name)
click to toggle source
Process source for a library file
# File lib/brakeman/processor.rb, line 97 def process_lib src, file_name LibraryProcessor.new(@tracker).process_library src, file_name end
process_model(src, file_name)
click to toggle source
Process a model source
# File lib/brakeman/processor.rb, line 54 def process_model src, file_name result = ModelProcessor.new(@tracker).process_model src, file_name AliasProcessor.new(@tracker, file_name).process result if result end
process_routes(src)
click to toggle source
Process route file source
# File lib/brakeman/processor.rb, line 34 def process_routes src RoutesProcessor.new(@tracker).process_routes src end
process_template(name, src, type, called_from = nil, file_name = nil)
click to toggle source
Process either an ERB or HAML template
# File lib/brakeman/processor.rb, line 60 def process_template name, src, type, called_from = nil, file_name = nil case type when :erb result = ErbTemplateProcessor.new(@tracker, name, called_from, file_name).process src when :haml result = HamlTemplateProcessor.new(@tracker, name, called_from, file_name).process src when :erubis result = ErubisTemplateProcessor.new(@tracker, name, called_from, file_name).process src when :slim result = SlimTemplateProcessor.new(@tracker, name, called_from, file_name).process src else abort "Unknown template type: #{type} (#{name})" end #Each template which is rendered is stored separately #with a new name. if called_from name = ("#{name}.#{called_from}").to_sym end @tracker.templates[name].src = result @tracker.templates[name].type = type end
process_template_alias(template)
click to toggle source
Process any calls to render() within a template
# File lib/brakeman/processor.rb, line 85 def process_template_alias template TemplateAliasProcessor.new(@tracker, template).process_safely template.src end
tracked_events()
click to toggle source
# File lib/brakeman/processor.rb, line 19 def tracked_events @tracker end