class CC::Analyzer::IssueSorter
Public Class Methods
new(issues)
click to toggle source
# File lib/cc/analyzer/issue_sorter.rb, line 4 def initialize(issues) @issues = issues end
Public Instance Methods
by_location()
click to toggle source
# File lib/cc/analyzer/issue_sorter.rb, line 8 def by_location @issues.sort_by { |i| line_or_offset(i) } end
Private Instance Methods
line_or_offset(issue)
click to toggle source
# File lib/cc/analyzer/issue_sorter.rb, line 14 def line_or_offset(issue) location = issue["location"] case when location["lines"] [location["lines"]["begin"].to_i] when location["positions"] && location["positions"]["begin"]["line"] [location["positions"]["begin"]["line"].to_i, location["positions"]["begin"]["column"].to_i] when location["positions"] && location["positions"]["begin"]["offset"] [1_000_000_000] # push offsets to end of list else [0] # whole-file issues are first end end