Class: RSpectre::Linter
- Inherits:
-
Object
show all
- Defined in:
- lib/rspectre/linter.rb,
lib/rspectre/linter/unused_let.rb,
lib/rspectre/linter/unused_subject.rb,
lib/rspectre/linter/unused_shared_setup.rb
Defined Under Namespace
Classes: UnusedLet, UnusedSharedSetup, UnusedSubject
Constant Summary
collapse
- SOURCE_FILES =
rubocop:disable Style/MutableConstant
{}
Class Method Summary
collapse
Class Method Details
.example_group ⇒ Object
7
8
9
|
# File 'lib/rspectre/linter.rb', line 7
def self.example_group
RSpec::Core::ExampleGroup
end
|
.node_map(file) ⇒ Object
32
33
34
|
# File 'lib/rspectre/linter.rb', line 32
def self.node_map(file)
SOURCE_FILES[file] ||= SourceMap.parse(file)
end
|
.prepend_behavior(scope, method_name) ⇒ Object
40
41
42
43
44
45
46
47
48
|
# 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) ⇒ Object
36
37
38
|
# File 'lib/rspectre/linter.rb', line 36
def self.record(node)
TRACKER.record(self::TAG, node)
end
|
.register(selector, locations) ⇒ Object
rubocop:disable Metrics/MethodLength
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# 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
|