yardcheck 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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