yardcheck 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/hooks/pre-command +3 -0
  3. data/.buildkite/pipeline.yml +10 -0
  4. data/.gitmodules +3 -0
  5. data/.rubocop.yml +15 -13
  6. data/Gemfile +3 -2
  7. data/README.md +19 -4
  8. data/lib/yardcheck/const.rb +27 -1
  9. data/lib/yardcheck/documentation/method_object.rb +21 -3
  10. data/lib/yardcheck/method_call.rb +37 -10
  11. data/lib/yardcheck/method_tracer.rb +50 -11
  12. data/lib/yardcheck/observation.rb +32 -6
  13. data/lib/yardcheck/processed_source.rb +32 -0
  14. data/lib/yardcheck/runner.rb +6 -0
  15. data/lib/yardcheck/typedef/parser.rb +1 -1
  16. data/lib/yardcheck/typedef.rb +16 -2
  17. data/lib/yardcheck/version.rb +1 -1
  18. data/lib/yardcheck/violation.rb +38 -0
  19. data/lib/yardcheck.rb +2 -0
  20. data/spec/integration/yardcheck_spec.rb +9 -3
  21. data/spec/spec_helper.rb +5 -1
  22. data/spec/unit/yardcheck/const_spec.rb +14 -0
  23. data/spec/unit/yardcheck/documentation_spec.rb +17 -2
  24. data/spec/unit/yardcheck/method_tracer_spec.rb +4 -6
  25. data/spec/unit/yardcheck/processed_source_spec.rb +43 -0
  26. data/spec/unit/yardcheck/runner_spec.rb +19 -20
  27. data/test_app/Gemfile +1 -0
  28. data/test_app/Gemfile.lock +9 -4
  29. data/test_app/lib/test_app/ambiguous_raise.rb +33 -0
  30. data/test_app/lib/test_app/block_return.rb +40 -0
  31. data/test_app/lib/test_app/tracepoint_bug.rb +23 -0
  32. data/test_app/lib/test_app.rb +32 -1
  33. data/test_app/spec/test_app/ambiguous_raise_spec.rb +9 -0
  34. data/test_app/spec/test_app/block_return_spec.rb +9 -0
  35. data/test_app/spec/test_app/tracepoint_bug_spec.rb +7 -0
  36. data/test_app/spec/test_app_spec.rb +31 -13
  37. data/yardcheck.gemspec +1 -0
  38. metadata +27 -2
@@ -8,10 +8,17 @@ RSpec.describe Yardcheck::Const do
8
8
  module Bar
9
9
  module Baz
10
10
  end # Baz
11
+
12
+ class Hash
13
+ end # Hash
11
14
  end # Bar
12
15
  end # Foo
13
16
  end
14
17
 
18
+ it 'resolves Object' do
19
+ expect(described_class.resolve('')).to eql(described_class.new(Object))
20
+ end
21
+
15
22
  it 'resolves top level constant' do
16
23
  expect(described_class.resolve('Foo')).to eql(described_class.new(Foo))
17
24
  end
@@ -45,4 +52,11 @@ RSpec.describe Yardcheck::Const do
45
52
  described_class::Invalid.new(Foo::Bar, 'What')
46
53
  )
47
54
  end
55
+
56
+ it 'special cases Hash' do
57
+ aggregate_failures do
58
+ expect(described_class.resolve('Hash', Foo::Bar)).to eql(described_class.new(Hash))
59
+ expect(described_class.resolve('Bar::Hash', Foo)).to eql(described_class.new(Foo::Bar::Hash))
60
+ end
61
+ end
48
62
  end
@@ -59,8 +59,10 @@ RSpec.describe Yardcheck::Documentation do
59
59
  end
60
60
 
61
61
  it 'handles documented returns without types' do
62
- expect(method_object('TestApp::Namespace#return_tag_without_type').return_type)
63
- .to eql(typedef)
62
+ aggregate_failures do
63
+ expect(method_object('TestApp::Namespace#tags_without_types').return_type).to be(nil)
64
+ expect(method_object('TestApp::Namespace#tags_without_types').params).to eql({})
65
+ end
64
66
  end
65
67
 
66
68
  it 'handles returns with a literal nil' do
@@ -145,4 +147,17 @@ RSpec.describe Yardcheck::Documentation do
145
147
  it 'return type of undocumented' do
146
148
  expect(undocumented.return_type).to be(nil)
147
149
  end
150
+
151
+ it 'identifies predicate methods' do
152
+ aggregate_failures do
153
+ expect(namespace_add).not_to be_predicate_method
154
+ expect(method_object('TestApp::Namespace#truthy_predicate?')).to be_predicate_method
155
+ end
156
+ end
157
+
158
+ it 'exposes documented raise' do
159
+ expect(method_object('TestApp::Namespace#always_raise').raise_type).to eql(
160
+ typedef(literal(const(TestApp::Namespace::AppError)))
161
+ )
162
+ end
148
163
  end
@@ -36,23 +36,21 @@ RSpec.describe Yardcheck::MethodTracer do
36
36
  end
37
37
 
38
38
  expect(tracer.events).to eq([
39
- Yardcheck::MethodCall.process(
39
+ Yardcheck::MethodCall::Return.process(
40
40
  scope: :class,
41
41
  selector: :singleton_method_example,
42
42
  namespace: Foo.singleton_class,
43
43
  params: { baz: 'Hello' },
44
44
  return_value: 'HELLO',
45
- example_location: RSpec.current_example.location,
46
- error_raised: false
45
+ example_location: RSpec.current_example.location
47
46
  ),
48
- Yardcheck::MethodCall.process(
47
+ Yardcheck::MethodCall::Return.process(
49
48
  scope: :instance,
50
49
  selector: :instance_method_example,
51
50
  namespace: Foo,
52
51
  params: { baz: 'Hello' },
53
52
  return_value: 'HELLO',
54
- example_location: RSpec.current_example.location,
55
- error_raised: false
53
+ example_location: RSpec.current_example.location
56
54
  )
57
55
  ])
58
56
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Yardcheck::ProcessedSource do
4
+ context 'when method has a rescue with an embedded explicit return' do
5
+ let(:source) { described_class.new(<<-RUBY) }
6
+ def foo
7
+ bar
8
+ rescue SomeError
9
+ return 2
10
+ end
11
+ RUBY
12
+
13
+ it 'marks it as tracepoint bug candidate' do
14
+ expect(source).to be_tracepoint_bug_candidate
15
+ end
16
+ end
17
+
18
+ context 'when the method does not have a rescue or return' do
19
+ let(:source) { described_class.new(<<-RUBY) }
20
+ def foo
21
+ bar
22
+ end
23
+ RUBY
24
+
25
+ it 'is not a bug candidate' do
26
+ expect(source).not_to be_tracepoint_bug_candidate
27
+ end
28
+ end
29
+
30
+ context 'when the resbody contains an implicit return' do
31
+ let(:source) { described_class.new(<<-RUBY) }
32
+ def foo
33
+ bar
34
+ rescue
35
+ baz
36
+ end
37
+ RUBY
38
+
39
+ it 'is not a bug candidate' do
40
+ expect(source).not_to be_tracepoint_bug_candidate
41
+ end
42
+ end
43
+ end
@@ -19,23 +19,21 @@ RSpec.describe Yardcheck::Runner do
19
19
 
20
20
  let(:observed_events) do
21
21
  [
22
- Yardcheck::MethodCall.process(
22
+ Yardcheck::MethodCall::Return.process(
23
23
  scope: :instance,
24
24
  selector: :add,
25
25
  namespace: TestApp::Namespace,
26
26
  params: { left: 'foo', right: 3 },
27
27
  return_value: 5,
28
- example_location: 'test_app_spec.rb:1',
29
- error_raised: false
28
+ example_location: 'test_app_spec.rb:1'
30
29
  ),
31
- Yardcheck::MethodCall.process(
30
+ Yardcheck::MethodCall::Return.process(
32
31
  scope: :class,
33
32
  selector: :add,
34
33
  namespace: TestApp::Namespace.singleton_class,
35
34
  params: { left: 2, right: 3 },
36
35
  return_value: 5,
37
- example_location: 'test_app_spec.rb:2',
38
- error_raised: false
36
+ example_location: 'test_app_spec.rb:2'
39
37
  )
40
38
  ]
41
39
  end
@@ -44,7 +42,7 @@ RSpec.describe Yardcheck::Runner do
44
42
  <<~MSG
45
43
  Expected #<Class:TestApp::Namespace>#add to return String but observed Fixnum
46
44
 
47
- source: ./test_app/lib/test_app.rb:9
45
+ source: ./test_app/lib/test_app.rb:15
48
46
  tests:
49
47
  - test_app_spec.rb:2
50
48
 
@@ -60,7 +58,7 @@ RSpec.describe Yardcheck::Runner do
60
58
 
61
59
  Expected TestApp::Namespace#add to receive Integer for left but observed String
62
60
 
63
- source: ./test_app/lib/test_app.rb:19
61
+ source: ./test_app/lib/test_app.rb:25
64
62
  tests:
65
63
  - test_app_spec.rb:1
66
64
 
@@ -76,7 +74,7 @@ RSpec.describe Yardcheck::Runner do
76
74
 
77
75
  Expected TestApp::Namespace#add to return String but observed Fixnum
78
76
 
79
- source: ./test_app/lib/test_app.rb:19
77
+ source: ./test_app/lib/test_app.rb:25
80
78
  tests:
81
79
  - test_app_spec.rb:1
82
80
 
@@ -97,6 +95,10 @@ RSpec.describe Yardcheck::Runner do
97
95
  string.gsub(/\e\[(?:1\;)?\d+m/, '')
98
96
  end
99
97
 
98
+ before do
99
+ allow(Kernel).to receive(:exit).with(1)
100
+ end
101
+
100
102
  shared_examples 'violation output' do
101
103
  it 'compares the spec observations against the documentation' do
102
104
  runner.check
@@ -110,32 +112,29 @@ RSpec.describe Yardcheck::Runner do
110
112
  context 'when multiple tests find the same violation' do
111
113
  let(:observed_events) do
112
114
  [
113
- Yardcheck::MethodCall.process(
115
+ Yardcheck::MethodCall::Return.process(
114
116
  scope: :instance,
115
117
  selector: :add,
116
118
  namespace: TestApp::Namespace,
117
119
  params: { left: 'foo', right: 3 },
118
120
  return_value: 'valid return type',
119
- example_location: 'test_app_spec.rb:1',
120
- error_raised: false
121
+ example_location: 'test_app_spec.rb:1'
121
122
  ),
122
- Yardcheck::MethodCall.process(
123
+ Yardcheck::MethodCall::Return.process(
123
124
  scope: :instance,
124
125
  selector: :add,
125
126
  namespace: TestApp::Namespace,
126
127
  params: { left: 'foo', right: 3 },
127
128
  return_value: 'valid return type',
128
- example_location: 'test_app_spec.rb:2',
129
- error_raised: false
129
+ example_location: 'test_app_spec.rb:2'
130
130
  ),
131
- Yardcheck::MethodCall.process(
131
+ Yardcheck::MethodCall::Return.process(
132
132
  scope: :instance,
133
133
  selector: :add,
134
134
  namespace: TestApp::Namespace,
135
135
  params: { left: 1, right: 'now this one is wrong' },
136
136
  return_value: 'valid return type',
137
- example_location: 'test_app_spec.rb:3',
138
- error_raised: false
137
+ example_location: 'test_app_spec.rb:3'
139
138
  )
140
139
  ]
141
140
  end
@@ -144,7 +143,7 @@ RSpec.describe Yardcheck::Runner do
144
143
  <<~MSG
145
144
  Expected TestApp::Namespace#add to receive Integer for left but observed String
146
145
 
147
- source: ./test_app/lib/test_app.rb:19
146
+ source: ./test_app/lib/test_app.rb:25
148
147
  tests:
149
148
  - test_app_spec.rb:1
150
149
  - test_app_spec.rb:2
@@ -161,7 +160,7 @@ RSpec.describe Yardcheck::Runner do
161
160
 
162
161
  Expected TestApp::Namespace#add to receive Integer for right but observed String
163
162
 
164
- source: ./test_app/lib/test_app.rb:19
163
+ source: ./test_app/lib/test_app.rb:25
165
164
  tests:
166
165
  - test_app_spec.rb:3
167
166
 
data/test_app/Gemfile CHANGED
@@ -5,3 +5,4 @@ source 'https://rubygems.org'
5
5
  gem 'yardcheck', path: '..'
6
6
  gem 'pry'
7
7
  gem 'pry-byebug'
8
+ gem 'yard'
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- yardcheck (0.0.0)
5
- anima
4
+ yardcheck (0.0.1)
5
+ anima (~> 0.3)
6
6
  coderay (~> 1.1)
7
- concord
8
- rspec
7
+ concord (~> 0.1)
8
+ parser
9
+ rspec (~> 3.4)
9
10
  yard (~> 0.9)
10
11
 
11
12
  GEM
@@ -19,6 +20,7 @@ GEM
19
20
  abstract_type (~> 0.0.7)
20
21
  adamantium (~> 0.2)
21
22
  equalizer (~> 0.0.11)
23
+ ast (2.3.0)
22
24
  byebug (9.0.6)
23
25
  coderay (1.1.1)
24
26
  concord (0.1.5)
@@ -30,6 +32,8 @@ GEM
30
32
  memoizable (0.4.2)
31
33
  thread_safe (~> 0.3, >= 0.3.1)
32
34
  method_source (0.8.2)
35
+ parser (2.4.0.0)
36
+ ast (~> 2.2)
33
37
  pry (0.10.4)
34
38
  coderay (~> 1.1.0)
35
39
  method_source (~> 0.8.1)
@@ -60,6 +64,7 @@ PLATFORMS
60
64
  DEPENDENCIES
61
65
  pry
62
66
  pry-byebug
67
+ yard
63
68
  yardcheck!
64
69
 
65
70
  BUNDLED WITH
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TestApp
4
+ module AmbiguousRaise
5
+ SomeError = Class.new(StandardError)
6
+
7
+ # @return [Integer]
8
+ def self.method1
9
+ method2
10
+ end
11
+
12
+ # @return [Integer]
13
+ def self.method2
14
+ method3
15
+ rescue SomeError
16
+ 2
17
+ end
18
+
19
+ # @return [Integer]
20
+ def self.method3
21
+ method4
22
+
23
+ 3
24
+ end
25
+
26
+ # @return [Integer]
27
+ def self.method4
28
+ raise SomeError
29
+
30
+ 4
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TestApp
4
+ module BlockReturn
5
+ SomeError = Class.new(StandardError)
6
+
7
+ # @return [Integer]
8
+ def self.entrypoint
9
+ method_that_executes_normal_block do
10
+ 1
11
+ end
12
+
13
+ method_that_passes_block_with_return_keyword_along do
14
+ return 1
15
+ end
16
+
17
+ 'foo'
18
+ end
19
+
20
+ # @return [Integer]
21
+ def self.method_that_passes_block_with_return_keyword_along(&block)
22
+ method_that_yield_block_with_return_keyword(&block)
23
+
24
+ 2
25
+ end
26
+
27
+ # @return [Integer]
28
+ def self.method_that_yield_block_with_return_keyword
29
+ yield
30
+
31
+ 3
32
+ end
33
+
34
+ def self.method_that_executes_normal_block
35
+ yield
36
+
37
+ 4
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TestApp
4
+ class TracepointBug
5
+ SomeError = Class.new(StandardError)
6
+
7
+ # @return [Integer]
8
+ def method1
9
+ method2
10
+ rescue SomeError => error
11
+ foo # resolve ambiguous raise state
12
+ return 1
13
+ end
14
+
15
+ def foo
16
+ 1
17
+ end
18
+
19
+ def method2
20
+ raise SomeError
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_app/ambiguous_raise'
4
+ require 'test_app/block_return'
5
+ require 'test_app/tracepoint_bug'
6
+
1
7
  module TestApp
2
8
  class Namespace
3
9
  # Singleton method with correct param definition and incorrect return
@@ -47,8 +53,9 @@ module TestApp
47
53
  'str'
48
54
  end
49
55
 
56
+ # @param foo but not type definition in brackets
50
57
  # @return no type specified here
51
- def return_tag_without_type
58
+ def tags_without_types(foo)
52
59
  end
53
60
 
54
61
  # @param [String]
@@ -98,6 +105,7 @@ module TestApp
98
105
 
99
106
  AppError = Class.new(StandardError)
100
107
 
108
+ # @raise [AppError]
101
109
  # @return [Fixnum]
102
110
  def always_raise
103
111
  raise AppError
@@ -105,11 +113,34 @@ module TestApp
105
113
  1
106
114
  end
107
115
 
116
+ # @raise [AppError]
117
+ def invalid_raise_documentation
118
+ raise KeyError
119
+ end
120
+
108
121
  # @return [:foo]
109
122
  def returns_literal_symbol
110
123
  :foo
111
124
  end
112
125
 
126
+ # This should be ignored since truthy and falsey values are all values
127
+ #
128
+ # @return [Boolean]
129
+ def truthy_predicate?
130
+ 1
131
+ end
132
+
133
+ # @return [Array<Hash>]
134
+ def special_cases_top_level_constants
135
+ [{}]
136
+ end
137
+
138
+ class Hash
139
+ end
140
+
141
+ class Array
142
+ end
143
+
113
144
  class Parent
114
145
  end
115
146
 
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './../../lib/test_app'
4
+
5
+ RSpec.describe TestApp::AmbiguousRaise do
6
+ it 'calls a method which raises an error' do
7
+ expect(described_class.method1).to be(2)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './../../lib/test_app'
4
+
5
+ RSpec.describe TestApp::BlockReturn do
6
+ it 'calls a method which eventually yields and then executes a return' do
7
+ expect(described_class.entrypoint).to be(1)
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe TestApp::TracepointBug do
4
+ it 'returns 1' do
5
+ expect(described_class.new.method1).to be(1)
6
+ end
7
+ end
@@ -3,47 +3,65 @@
3
3
  require_relative './../lib/test_app'
4
4
 
5
5
  RSpec.describe TestApp::Namespace do
6
- it 'does math with instance method' do
7
- expect(TestApp::Namespace.new.add(2, 3)).to be(5)
8
- end
6
+ let(:object) { described_class.new }
9
7
 
10
8
  it 'does math with singleton method' do
11
- expect(TestApp::Namespace.add(2, 3)).to be(5)
9
+ expect(described_class.add(2, 3)).to be(5)
10
+ end
11
+
12
+ it 'does math with instance method' do
13
+ expect(object.add(2, 3)).to be(5)
12
14
  end
13
15
 
14
16
  it 'has an undocumented method and that is fine' do
15
- expect(TestApp::Namespace.new.undocumented).to be(nil)
17
+ expect(object.undocumented).to be(nil)
16
18
  end
17
19
 
18
20
  it 'documents returning the parent but returns child' do
19
- expect(TestApp::Namespace.new.returns_generic).to be_an_instance_of(TestApp::Namespace::Child)
21
+ expect(object.returns_generic).to be_an_instance_of(described_class::Child)
20
22
  end
21
23
 
22
24
  it 'documents returning a relative namespace incorrectly' do
23
- expect(TestApp::Namespace.new.documents_relative).to be_a(String)
25
+ expect(object.documents_relative).to be_a(String)
24
26
  end
25
27
 
26
28
  it 'incorrectly documents a method as accepting Enumerable<String>' do
27
- expect(TestApp::Namespace.new.enumerable_param('hi')).to be(nil)
29
+ expect(object.enumerable_param('hi')).to be(nil)
28
30
  end
29
31
 
30
32
  it 'properly tests a method with an instance double' do
31
- expect(TestApp::Namespace.new.properly_tested_with_instance_double(instance_double(String))).to be(nil)
33
+ expect(object.properly_tested_with_instance_double(instance_double(String))).to be(nil)
32
34
  end
33
35
 
34
36
  it 'improperly tests a method with an instance double' do
35
- expect(TestApp::Namespace.new.improperly_tested_with_instance_double(instance_double(Integer))).to be(nil)
37
+ expect(object.improperly_tested_with_instance_double(instance_double(Integer))).to be(nil)
36
38
  end
37
39
 
38
40
  it 'tests a method that raises an error instead of returning' do
39
- expect { TestApp::Namespace.new.always_raise }.to raise_error(TestApp::Namespace::AppError)
41
+ expect { object.always_raise }.to raise_error(described_class::AppError)
40
42
  end
41
43
 
42
44
  it 'improperly documents the param with an invalid const' do
43
- expect(TestApp::Namespace.new.ignoring_invalid_types('hi')).to be(nil)
45
+ expect(object.ignoring_invalid_types('hi')).to be(nil)
44
46
  end
45
47
 
46
48
  it 'returns a literal symbol' do
47
- expect(TestApp::Namespace.new.returns_literal_symbol).to be(:foo)
49
+ expect(object.returns_literal_symbol).to be(:foo)
50
+ end
51
+
52
+ it 'returns a truthy value for predicate?' do
53
+ expect(object.truthy_predicate?).to be_truthy
54
+ end
55
+
56
+ specify do
57
+ expect(object.tags_without_types(1)).to be(nil)
58
+ end
59
+
60
+ it 'special cases Array and Hash' do
61
+ expect(object.special_cases_top_level_constants).to eq([{}])
62
+ end
63
+
64
+ it 'is documented as raising AppError but actually raises KeyError' do
65
+ expect { object.invalid_raise_documentation }.to raise_error(KeyError)
48
66
  end
49
67
  end
data/yardcheck.gemspec CHANGED
@@ -21,4 +21,5 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'anima', '~> 0.3'
22
22
  spec.add_dependency 'rspec', '~> 3.4'
23
23
  spec.add_dependency 'coderay', '~> 1.1'
24
+ spec.add_dependency 'parser'
24
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yardcheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - John
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-03-23 00:00:00.000000000 Z
12
+ date: 2017-07-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yard
@@ -81,6 +81,20 @@ dependencies:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: '1.1'
84
+ - !ruby/object:Gem::Dependency
85
+ name: parser
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
84
98
  description: Verify that your YARD @param and @return types are correct
85
99
  email:
86
100
  - johncbackus@gmail.com
@@ -89,7 +103,10 @@ executables:
89
103
  extensions: []
90
104
  extra_rdoc_files: []
91
105
  files:
106
+ - ".buildkite/hooks/pre-command"
107
+ - ".buildkite/pipeline.yml"
92
108
  - ".gitignore"
109
+ - ".gitmodules"
93
110
  - ".rspec"
94
111
  - ".rubocop.yml"
95
112
  - ".rubocop_todo.yml"
@@ -106,6 +123,7 @@ files:
106
123
  - lib/yardcheck/method_call.rb
107
124
  - lib/yardcheck/method_tracer.rb
108
125
  - lib/yardcheck/observation.rb
126
+ - lib/yardcheck/processed_source.rb
109
127
  - lib/yardcheck/proxy.rb
110
128
  - lib/yardcheck/runner.rb
111
129
  - lib/yardcheck/source_lines.rb
@@ -122,6 +140,7 @@ files:
122
140
  - spec/unit/yardcheck/const_spec.rb
123
141
  - spec/unit/yardcheck/documentation_spec.rb
124
142
  - spec/unit/yardcheck/method_tracer_spec.rb
143
+ - spec/unit/yardcheck/processed_source_spec.rb
125
144
  - spec/unit/yardcheck/runner_spec.rb
126
145
  - spec/unit/yardcheck/test_value_spec.rb
127
146
  - spec/unit/yardcheck/typedef/parser_spec.rb
@@ -130,6 +149,12 @@ files:
130
149
  - test_app/Gemfile
131
150
  - test_app/Gemfile.lock
132
151
  - test_app/lib/test_app.rb
152
+ - test_app/lib/test_app/ambiguous_raise.rb
153
+ - test_app/lib/test_app/block_return.rb
154
+ - test_app/lib/test_app/tracepoint_bug.rb
155
+ - test_app/spec/test_app/ambiguous_raise_spec.rb
156
+ - test_app/spec/test_app/block_return_spec.rb
157
+ - test_app/spec/test_app/tracepoint_bug_spec.rb
133
158
  - test_app/spec/test_app_spec.rb
134
159
  - yardcheck.gemspec
135
160
  homepage: https://github.com/backus/yardcheck