Sha256: 665d001e5e5ee0b3c77d1ffb4fa19fd845220339866a11bb71b460a83314ecb0

Contents?: true

Size: 1.08 KB

Versions: 224

Compression:

Stored size: 1.08 KB

Contents

module CC
  module Analyzer
    class LocationDescription
      def initialize(source_buffer, location, suffix = "")
        @source_buffer = source_buffer
        @location = location
        @suffix = suffix
      end

      def to_s
        if location["lines"]
          begin_line = location["lines"]["begin"]
          end_line = location["lines"]["end"]
        elsif location["positions"]
          begin_line = position_to_line(location["positions"]["begin"])
          end_line = position_to_line(location["positions"]["end"])
        end

        str = render_lines(begin_line, end_line)
        str << suffix unless str.blank?
        str
      end

      private

      attr_reader :location, :suffix

      def render_lines(begin_line, end_line)
        if end_line == begin_line
          begin_line.to_s
        else
          "#{begin_line}-#{end_line}"
        end
      end

      def position_to_line(position)
        if position["line"]
          position["line"]
        else
          @source_buffer.decompose_position(position["offset"]).first
        end
      end
    end
  end
end

Version data entries

224 entries across 224 versions & 2 rubygems

Version Path
codeclimate-0.85.24 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.54 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.53 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.52 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.51 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.50 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.49 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.48 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.47 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.46 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.45 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.44 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.43 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.42 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.41 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.40 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.39 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.38 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.37 lib/cc/analyzer/location_description.rb
codeclimate-fede-0.85.36 lib/cc/analyzer/location_description.rb