Sha256: 89e9cd2f5d09d825a86a3f3cac52cad6200e43899524971113bb8ccd6c358698

Contents?: true

Size: 1.72 KB

Versions: 20

Compression:

Stored size: 1.72 KB

Contents

module Brakeman::RouteHelper
  #Manage Controller prefixes
  #@prefix is an Array, but this method returns a string
  #suitable for prefixing onto a controller name.
  def prefix
    if @prefix.length > 0
      @prefix.join("::") << "::"
    else
      ''
    end
  end

  #Sets the controller name to a proper class name.
  #For example
  # self.current_controller = :session
  # @controller == :SessionController #true
  #
  #Also prepends the prefix if there is one set.
  def current_controller= name
    @current_controller = (prefix + camelize(name) + "Controller").to_sym
    @tracker.routes[@current_controller] ||= Set.new
  end

  #Add route to controller. If a controller is specified,
  #the current controller will be set to that controller.
  #If no controller is specified, uses current controller value.
  def add_route route, controller = nil
    if node_type? route, :str, :lit
      route = route.value
    end

    route = route.to_sym

    if controller
      self.current_controller = controller
    end

    routes = @tracker.routes[@current_controller]
    
    if routes and routes != :allow_all_actions
      routes << route
    end
  end

  #Add default routes
  def add_resources_routes
    existing_routes = @tracker.routes[@current_controller]

    unless existing_routes.is_a? Array and existing_routes.first == :allow_all_actions
      existing_routes.merge [:index, :new, :create, :show, :edit, :update, :destroy]
    end
  end

  #Add default routes minus :index
  def add_resource_routes
    existing_routes = @tracker.routes[@current_controller]

    unless existing_routes.is_a? Array and existing_routes.first == :allow_all_actions
      existing_routes.merge [:new, :create, :show, :edit, :update, :destroy]
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
brakeman-min-2.1.2 lib/brakeman/processors/lib/route_helper.rb
brakeman-2.1.2 lib/brakeman/processors/lib/route_helper.rb
brakeman-min-2.1.1 lib/brakeman/processors/lib/route_helper.rb
brakeman-2.1.1 lib/brakeman/processors/lib/route_helper.rb
brakeman-min-2.1.0 lib/brakeman/processors/lib/route_helper.rb
brakeman-2.1.0 lib/brakeman/processors/lib/route_helper.rb
brakeman-2.0.0 lib/brakeman/processors/lib/route_helper.rb
brakeman-2.0.0.pre2 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.5 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.4 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.3 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.2 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.1 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.0 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.0.pre2 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.9.0.pre1 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.8.3 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.8.2 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.8.1 lib/brakeman/processors/lib/route_helper.rb
brakeman-1.8.0 lib/brakeman/processors/lib/route_helper.rb