Sha256: 24f42f981dd805704686f608af1fdb9c4a32565d1cf0aab2afd52bab91936a39

Contents?: true

Size: 767 Bytes

Versions: 11

Compression:

Stored size: 767 Bytes

Contents

# frozen_string_literal: true

module RailsSpotlight
  module Utils
    module_function

    def dev_callsite(caller)
      app_line = caller.detect { |c| c.start_with? RailsSpotlight.config.rails_root }
      return nil unless app_line

      _, filename, _, line, _, method = app_line.split(/^(.*?)(:(\d+))(:in `(.*)')?$/)

      {
        filename: sub_source_path(filename),
        line: line.to_i,
        method: method
      }
    rescue # rubocop:disable Style/RescueStandardError, Lint/SuppressedException
    end

    def sub_source_path(path)
      rails_root = RailsSpotlight.config.rails_root
      source_path = RailsSpotlight.config.source_path
      return path if rails_root == source_path

      path.sub(rails_root, source_path)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rails_spotlight-0.4.2 lib/rails_spotlight/utils.rb
rails_spotlight-0.4.1 lib/rails_spotlight/utils.rb
rails_spotlight-0.4.0 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.9 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.8 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.7 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.6 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.5 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.4 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.3 lib/rails_spotlight/utils.rb
rails_spotlight-0.3.2 lib/rails_spotlight/utils.rb