class RailsRoutesAnalyzer::RouteCall

Represents both positive and negative information collected about a specific call that generated Rails routes.

If called in a loop each iteration generates a new record.

Public Class Methods

fields(*names) click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 8
def self.fields(*names)
  names.each { |name| define_method(name) { self[name] } }
end
new(**kwargs) click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 21
def initialize(**kwargs)
  update(kwargs)
end

Public Instance Methods

add_issue(issue) click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 29
def add_issue(issue)
  issue.route_call = self
  issues << issue
end
full_filename() click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 42
def full_filename
  @full_filename ||= RailsRoutesAnalyzer.get_full_filename(file_location.sub(/:[0-9]*\z/, ''))
end
human_readable_error(**kwargs) click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 54
def human_readable_error(**kwargs)
  issues.map { |issue| issue.human_readable_error(**kwargs) }.join('; ')
end
issue?() click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 34
def issue?
  issues.any?
end
issues() click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 25
def issues
  self[:issues] ||= []
end
line_number() click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 46
def line_number
  @line_number ||= file_location[/:([0-9]+)\z/, 1].to_i
end
present_actions?() click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 38
def present_actions?
  present_actions.present?
end
suggestion(**kwargs) click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 50
def suggestion(**kwargs)
  issues.map { |issue| issue.suggestion(**kwargs) }.join('; ')
end
try_to_fix_line(line) click to toggle source
# File lib/rails_routes_analyzer/route_call.rb, line 58
def try_to_fix_line(line)
  return if issues.size != 1

  issues[0].try_to_fix_line(line)
end