Sha256: 46c8ec1443aaff8f6b96e74feb5c7b87aff0d2df83561aeb2a4a4e37de2add67
Contents?: true
Size: 1.75 KB
Versions: 8
Compression:
Stored size: 1.75 KB
Contents
module Brakeman class RenderPath attr_reader :path def initialize @path = [] end def add_controller_render controller_name, method_name method_name ||= "" @path << { :type => :controller, :class => controller_name.to_sym, :method => method_name.to_sym } self end def add_template_render template_name @path << { :type => :template, :name => template_name.to_sym } self end def include_template? name name = name.to_sym @path.any? do |loc| loc[:type] == :template and loc[:name] == name end end def include_controller? klass klass = klass.to_sym @path.any? do |loc| loc[:type] == :controller and loc[:class] == klass end end def include_any_method? method_names names = method_names.map(&:to_sym) @path.any? do |loc| loc[:type] == :controller and names.include? loc[:method] end end def rendered_from_controller? @path.any? do |loc| loc[:type] == :controller end end def each &block @path.each &block end def join *args self.to_a.join *args end def length @path.length end def to_a @path.map do |loc| case loc[:type] when :template "Template:#{loc[:name]}" when :controller "#{loc[:class]}##{loc[:method]}" end end end def last self.to_a.last end def to_s self.to_a.to_s end def to_sym self.to_s.to_sym end def to_json *args MultiJson.dump(self.to_a) end def initialize_copy original @path = original.path.dup self end end end
Version data entries
8 entries across 8 versions & 2 rubygems