class RSpectre::Linter

Constants

SOURCE_FILES

Public Class Methods

example_group() click to toggle source
# File lib/rspectre/linter.rb, line 7
def self.example_group
  RSpec::Core::ExampleGroup
end
node_map(file) click to toggle source
# File lib/rspectre/linter.rb, line 32
def self.node_map(file)
  SOURCE_FILES[file] ||= SourceMap.parse(file)
end
prepend_behavior(scope, method_name) { || ... } click to toggle source
# File lib/rspectre/linter.rb, line 40
def self.prepend_behavior(scope, method_name)
  original_method = scope.instance_method(method_name)

  scope.__send__(:define_method, method_name) do |*args, &block|
    yield

    original_method.bind(self).(*args, &block)
  end
end
record(node) click to toggle source
# File lib/rspectre/linter.rb, line 36
def self.record(node)
  TRACKER.record(self::TAG, node)
end
register(selector, locations) { |node| ... } click to toggle source
# File lib/rspectre/linter.rb, line 11
def self.register(selector, locations)
  location = locations.first

  file = File.realpath(location.path)
  line = location.lineno

  return unless file.to_s.start_with?(File.realpath(Dir.pwd))

  raw_node = node_map(file).find_method(selector, line)

  if raw_node
    node = RSpectre::Node.new(file, line, raw_node)
    TRACKER.register(self::TAG, node)
    if block_given?
      yield node
    else
      return node
    end
  end
end