Class: RouteGuard::Models::Issue

Inherits:
Object
  • Object
show all
Defined in:
lib/route_guard/models/issue.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rule_name:, severity:, message:, route:, related_routes: [], file: nil, line: nil) ⇒ Issue

Returns a new instance of Issue.



8
9
10
11
12
13
14
15
16
# File 'lib/route_guard/models/issue.rb', line 8

def initialize(rule_name:, severity:, message:, route:, related_routes: [], file: nil, line: nil)
  @rule_name = rule_name.to_sym
  @severity = severity.to_sym # :error, :warning
  @message = message
  @route = route
  @related_routes = Array(related_routes)
  @file = file || route&.file
  @line = line || route&.line
end

Instance Attribute Details

#fileObject (readonly)

Returns the value of attribute file.



6
7
8
# File 'lib/route_guard/models/issue.rb', line 6

def file
  @file
end

#lineObject (readonly)

Returns the value of attribute line.



6
7
8
# File 'lib/route_guard/models/issue.rb', line 6

def line
  @line
end

#messageObject (readonly)

Returns the value of attribute message.



6
7
8
# File 'lib/route_guard/models/issue.rb', line 6

def message
  @message
end

Returns the value of attribute related_routes.



6
7
8
# File 'lib/route_guard/models/issue.rb', line 6

def related_routes
  @related_routes
end

#routeObject (readonly)

Returns the value of attribute route.



6
7
8
# File 'lib/route_guard/models/issue.rb', line 6

def route
  @route
end

#rule_nameObject (readonly)

Returns the value of attribute rule_name.



6
7
8
# File 'lib/route_guard/models/issue.rb', line 6

def rule_name
  @rule_name
end

#severityObject (readonly)

Returns the value of attribute severity.



6
7
8
# File 'lib/route_guard/models/issue.rb', line 6

def severity
  @severity
end

Instance Method Details

#locationObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/route_guard/models/issue.rb', line 18

def location
  if file && line
    relative_file = file.sub(/\A#{Regexp.escape(Dir.pwd)}\//, "")
    "#{relative_file}:#{line}"
  elsif file
    file.sub(/\A#{Regexp.escape(Dir.pwd)}\//, "")
  else
    "unknown location"
  end
end