Parent

Included Modules

Class/Module Index [+]

Quicksearch

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)
  @app_tree = app_tree
  @tracker = Tracker.new(@app_tree, self, options)
end

Public Instance Methods

process_config(src) click to toggle source

Process configuration file source

# File lib/brakeman/processor.rb, line 25
def process_config src
  ConfigProcessor.new(@tracker).process_config src
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 40
def process_controller src, file_name
  if contains_class? src
    ControllerProcessor.new(@app_tree, @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) click to toggle source

Process variable aliasing in controller source and save it in the tracker.

# File lib/brakeman/processor.rb, line 50
def process_controller_alias name, src, only_method = nil
  ControllerAliasProcessor.new(@app_tree, @tracker, only_method).process_controller name, src
end
process_gems(src, gem_lock = nil) click to toggle source

Process Gemfile

# File lib/brakeman/processor.rb, line 30
def process_gems src, gem_lock = nil
  GemProcessor.new(@tracker).process_gems src, gem_lock
end
process_initializer(name, src) click to toggle source

Process source for initializing files

# File lib/brakeman/processor.rb, line 89
def process_initializer name, src
  res = BaseProcessor.new(@tracker).process src
  res = AliasProcessor.new(@tracker).process res
  @tracker.initializers[Pathname.new(name).basename.to_s] = res
end
process_lib(src, file_name) click to toggle source

Process source for a library file

# File lib/brakeman/processor.rb, line 96
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 55
def process_model src, file_name
  result = ModelProcessor.new(@tracker).process_model src, file_name
  AliasProcessor.new(@tracker).process_all result if result
end
process_routes(src) click to toggle source

Process route file source

# File lib/brakeman/processor.rb, line 35
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 61
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
  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 84
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 20
def tracked_events
  @tracker
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.