reek 5.1.0 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e1bd0b5a333788b75250144a86c3a1a47a915bb
4
- data.tar.gz: b9077da5e1add357ca2411a983cccaef9f754ab5
3
+ metadata.gz: 6edbc24f9dc5d13f418d60c9fbcadd30e8ac433c
4
+ data.tar.gz: f0fdcaa7d1a6dc702f24763f62a44367a7004365
5
5
  SHA512:
6
- metadata.gz: b7c6ea853eabe8c9d2b090bd12c679bf5a95723b9009d48b35e641c106126697e3ad53ed4121b7540ee5d9bf8fe6e95c269bb90f7b16cfb25ea049953f9b2e26
7
- data.tar.gz: 2b2cc32734fa88f97792cae488fae2e210981920b53626b3041f3e88846e856cf54e8ad26e8d430992cbb4f3b0fdc6be0f4653cc51dc2528655efda4b2cd7db2
6
+ metadata.gz: aa7cad97b7d6108cf2c8f813adf0dc72258f64aab8645eacbb5854146614a6afa6d35951e950187d967007abeefe38eebd5af468f005d551929a73115e7cbe00
7
+ data.tar.gz: 4a04b1a57046145c006322cb6d34db5bcd970cceef1834a539209dfe2c2469c1b4d05359e5e3393dd8084f3f605af25dd2aaafaecb6212cf680587a267326e2d
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 5.2.0 (2018-10-13)
6
+
7
+ * (troessner) Enable exclusion of single files.
8
+
5
9
  ## 5.1.0 (2018-09-22)
6
10
 
7
11
  * (troessner) Simplify todo list feature.
@@ -89,6 +89,14 @@ class Alfa
89
89
  end
90
90
  ```
91
91
 
92
+ We also aim to make our specs as self-reliant as possible. They should not rely on external sample
93
+ or configuration files since that makes it very hard to reason about them and introduces a tight coupling
94
+ which makes refactoring more difficult.
95
+ Unfortunately our current specs are a bit misleading in this regard since they are often doing the
96
+ opposite, relying on external sample and configuration files (indicated by using
97
+ some of the constants defined in `samples/paths.rb`).
98
+ Our goal is to reverse this development.
99
+
92
100
  ### Cucumber Features
93
101
 
94
102
  Reek uses [Cucumber](https://cucumber.io/) with
data/Gemfile CHANGED
@@ -12,7 +12,7 @@ group :development do
12
12
  gem 'kramdown', '~> 1.17'
13
13
  gem 'rake', '~> 12.0'
14
14
  gem 'rspec', '~> 3.0'
15
- gem 'rspec-benchmark', '~> 0.3.0'
15
+ gem 'rspec-benchmark', '~> 0.4.0'
16
16
  gem 'rubocop', '~> 0.59.1'
17
17
  gem 'rubocop-rspec', '~> 1.29.0'
18
18
  gem 'simplecov', '~> 0.16.1'
data/README.md CHANGED
@@ -324,10 +324,11 @@ directories:
324
324
 
325
325
  ### Excluding directories
326
326
 
327
- # Directories below will not be scanned at all
327
+ # Directories and files below will not be scanned at all
328
328
  exclude_paths:
329
329
  - lib/legacy
330
330
  - lib/rake/legacy_tasks
331
+ - lib/smelly.rb
331
332
  ```
332
333
 
333
334
  As you see above, Reek's configuration consists of 3 different sections denoted by 3 different keys:
@@ -582,6 +583,9 @@ directories:
582
583
  "app/mailers":
583
584
  InstanceVariableAssumption:
584
585
  enabled: false
586
+ "app/models":
587
+ InstanceVariableAssumption:
588
+ enabled: false
585
589
  ```
586
590
 
587
591
  Be careful though, Reek does not merge your configuration entries, so if you already have a directory directive for "app/controllers" or "app/helpers" you need to update those directives instead of copying the above YAML sample into your configuration file.
@@ -129,6 +129,35 @@ An instance variable must:
129
129
 
130
130
  If not, _Instance Variable Assumption_ will be reported.
131
131
 
132
+ ## Using Instance Variable Assumption in a Rails context
133
+
134
+ In ActiveRecord it seems common to use callbacks like `after_initialize` to initialize instance variables as
135
+ outlined [here](https://stackoverflow.com/questions/41165520/overriding-applicationrecord-initialize-bad-idea)
136
+ or [here](http://blog.dalethatcher.com/2008/03/rails-dont-override-initialize-on.html)
137
+ instead of overriding the `initialize` method.
138
+ If an instance variable is initialized in such a callback Reek will report it correspondingly.
139
+
140
+ This would smell for instance:
141
+
142
+ ```Ruby
143
+ class Sample < ApplicationRecord
144
+ after_initialize do
145
+ @my_var = false
146
+ end
147
+ end
148
+ ```
149
+
150
+ Since Reek cannot reliably detect that is used in a Rails context we recommend to disable this detector
151
+ for "app/models" like this:
152
+
153
+ ```Yaml
154
+ directories:
155
+ # Your other configuration....
156
+ "app/models":
157
+ InstanceVariableAssumption:
158
+ enabled: false
159
+ ```
160
+
132
161
  ## Configuration
133
162
 
134
163
  _Instance Variable Assumption_ supports the [Basic Smell Options](Basic-Smell-Options.md).
@@ -43,7 +43,7 @@ Feature: Reek can be controlled using command-line options
43
43
  -c, --config FILE Read configuration options from FILE
44
44
  --smell SMELL Only look for a specific smell.
45
45
  Call it like this: reek --smell MissingSafeMethod source.rb
46
- Check out https://github.com/troessner/reek/blob/v5.1.0/docs/Code-Smells.md for a list of smells
46
+ Check out https://github.com/troessner/reek/blob/v5.2.0/docs/Code-Smells.md for a list of smells
47
47
  --stdin-filename FILE When passing code in via pipe, assume this filename when checking file or directory rules in the config.
48
48
 
49
49
  Generate a todo list:
@@ -120,5 +120,5 @@ Feature: Reek can be controlled using command-line options
120
120
  UnusedPrivateMethod
121
121
  UtilityFunction
122
122
 
123
- Check out https://github.com/troessner/reek/blob/v5.1.0/docs/Code-Smells.md for a details on each detector
123
+ Check out https://github.com/troessner/reek/blob/v5.2.0/docs/Code-Smells.md for a details on each detector
124
124
  """
@@ -3,25 +3,24 @@ Feature: Exclude paths directives
3
3
  As a user
4
4
  I want to be able to exclude specific paths from being checked
5
5
 
6
- Scenario: Exclude some paths
7
- Given a file named "bad_files_live_here/smelly.rb" with:
8
- """
9
- # A smelly example class
10
- class Smelly
11
- def alfa(bravo); end
12
- end
13
- """
6
+ Scenario: Exclude paths
7
+ Given the smelly file "smelly.rb" in the directory "smelly_sources"
8
+ And the smelly file "smelly.rb" in the directory "smelly_as_well"
9
+ And the smelly file "smelly.rb" in the directory "smelly_as_well_2"
14
10
  When I run reek .
15
11
  Then the exit status indicates smells
16
12
  Given a file named "config.reek" with:
17
13
  """
18
14
  ---
19
15
  exclude_paths:
20
- - bad_files_live_here
16
+ - smelly_sources/smelly.rb
17
+ - smelly_as_well/
18
+ - smelly_as_well_2
21
19
  """
22
20
  When I run reek -c config.reek .
23
21
  Then it succeeds
24
22
  And it reports nothing
23
+
25
24
  Scenario: Using a file name within an excluded directory
26
25
  Given a file named "bad_files_live_here/smelly.rb" with:
27
26
  """
@@ -35,8 +35,8 @@ Feature: Validate schema
35
35
 
36
36
  exclude_paths:
37
37
  - lib/legacy
38
- - lib/rake/legacy_tasks
39
38
  """
39
+ And a directory named "lib/legacy"
40
40
  And the clean file "clean.rb"
41
41
  When I run reek -c config.reek clean.rb
42
42
  Then it succeeds
@@ -24,7 +24,7 @@ Feature: Report smells using simple JSON layout
24
24
  "context": "Smelly#x",
25
25
  "lines": [ 4 ],
26
26
  "message": "has the name 'x'",
27
- "documentation_link": "https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Method-Name.md",
27
+ "documentation_link": "https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Method-Name.md",
28
28
  "name": "x"
29
29
  },
30
30
  {
@@ -33,7 +33,7 @@ Feature: Report smells using simple JSON layout
33
33
  "context": "Smelly#x",
34
34
  "lines": [ 5 ],
35
35
  "message": "has the variable name 'y'",
36
- "documentation_link": "https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Variable-Name.md",
36
+ "documentation_link": "https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Variable-Name.md",
37
37
  "name": "y"
38
38
  }
39
39
  ]
@@ -53,7 +53,7 @@ Feature: Report smells using simple JSON layout
53
53
  1
54
54
  ],
55
55
  "message": "has no descriptive comment",
56
- "documentation_link": "https://github.com/troessner/reek/blob/v5.1.0/docs/Irresponsible-Module.md"
56
+ "documentation_link": "https://github.com/troessner/reek/blob/v5.2.0/docs/Irresponsible-Module.md"
57
57
  }
58
58
  ]
59
59
  """
@@ -182,8 +182,8 @@ Feature: Correctly formatted reports
182
182
  And it reports:
183
183
  """
184
184
  smelly.rb -- 2 warnings:
185
- [4]:UncommunicativeMethodName: Smelly#x has the name 'x' [https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Method-Name.md]
186
- [5]:UncommunicativeVariableName: Smelly#x has the variable name 'y' [https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Variable-Name.md]
185
+ [4]:UncommunicativeMethodName: Smelly#x has the name 'x' [https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Method-Name.md]
186
+ [5]:UncommunicativeVariableName: Smelly#x has the variable name 'y' [https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Variable-Name.md]
187
187
  """
188
188
 
189
189
  Examples:
@@ -209,8 +209,8 @@ Feature: Correctly formatted reports
209
209
  And it reports:
210
210
  """
211
211
  smelly.rb -- 2 warnings:
212
- UncommunicativeMethodName: Smelly#x has the name 'x' [https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Method-Name.md]
213
- UncommunicativeVariableName: Smelly#x has the variable name 'y' [https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Variable-Name.md]
212
+ UncommunicativeMethodName: Smelly#x has the name 'x' [https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Method-Name.md]
213
+ UncommunicativeVariableName: Smelly#x has the variable name 'y' [https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Variable-Name.md]
214
214
  """
215
215
 
216
216
  Examples:
@@ -25,7 +25,7 @@ Feature: Report smells using simple YAML layout
25
25
  smell_type: UncommunicativeMethodName
26
26
  source: smelly.rb
27
27
  name: x
28
- documentation_link: https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Method-Name.md
28
+ documentation_link: https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Method-Name.md
29
29
  - context: Smelly#x
30
30
  lines:
31
31
  - 5
@@ -33,7 +33,7 @@ Feature: Report smells using simple YAML layout
33
33
  smell_type: UncommunicativeVariableName
34
34
  source: smelly.rb
35
35
  name: y
36
- documentation_link: https://github.com/troessner/reek/blob/v5.1.0/docs/Uncommunicative-Variable-Name.md
36
+ documentation_link: https://github.com/troessner/reek/blob/v5.2.0/docs/Uncommunicative-Variable-Name.md
37
37
  """
38
38
 
39
39
  Scenario: Indicate smells and print them as yaml when using STDIN
@@ -48,5 +48,5 @@ Feature: Report smells using simple YAML layout
48
48
  lines:
49
49
  - 1
50
50
  message: has no descriptive comment
51
- documentation_link: https://github.com/troessner/reek/blob/v5.1.0/docs/Irresponsible-Module.md
51
+ documentation_link: https://github.com/troessner/reek/blob/v5.2.0/docs/Irresponsible-Module.md
52
52
  """
@@ -4,6 +4,12 @@ Given(/^the smelly file '(.+)'$/) do |filename|
4
4
  write_file(filename, SAMPLES_DIR.join('smelly_source').join(filename).read)
5
5
  end
6
6
 
7
+ Given(/^the smelly file "(.+)" in the directory "(.+)"$/) do |filename, directory|
8
+ FileUtils.mkdir_p directory
9
+ write_file Pathname(directory).join(filename).to_s,
10
+ SAMPLES_DIR.join('smelly_source').join(filename).read
11
+ end
12
+
7
13
  Given(/^the clean file "(.*)"$/) do |filename|
8
14
  write_file(filename, CLEAN_FILE.read)
9
15
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative './configuration_validator'
4
+ require_relative '../errors/config_file_error'
4
5
 
5
6
  module Reek
6
7
  module Configuration
@@ -10,11 +11,10 @@ module Reek
10
11
  module ExcludedPaths
11
12
  include ConfigurationValidator
12
13
 
13
- # @quality :reek:NestedIterators { max_allowed_nesting: 2 }
14
+ # @param paths [String]
15
+ # @return [undefined]
14
16
  def add(paths)
15
- paths.each do |path|
16
- with_valid_directory(path) { |directory| self << directory }
17
- end
17
+ paths.each { |path| self << Pathname(path) }
18
18
  end
19
19
  end
20
20
  end
@@ -59,6 +59,8 @@ module Reek
59
59
 
60
60
  false
61
61
  end
62
+ elsif path_excluded?(path)
63
+ true
62
64
  else
63
65
  false
64
66
  end
@@ -8,6 +8,6 @@ module Reek
8
8
  # @public
9
9
  module Version
10
10
  # @public
11
- STRING = '5.1.0'
11
+ STRING = '5.2.0'
12
12
  end
13
13
  end
@@ -2,3 +2,4 @@
2
2
  exclude_paths:
3
3
  - samples/source_with_exclude_paths/ignore_me/
4
4
  - samples/source_with_exclude_paths/nested/ignore_me_as_well
5
+ - samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb
@@ -0,0 +1,6 @@
1
+ # Klass comment.
2
+ class Klass
3
+ def meth
4
+ x = 5
5
+ end
6
+ end
@@ -7,48 +7,65 @@ require_lib 'reek/configuration/excluded_paths'
7
7
 
8
8
  RSpec.describe Reek::Configuration::AppConfiguration do
9
9
  describe 'factory methods' do
10
- let(:expected_excluded_paths) do
11
- [SAMPLES_DIR.join('two_smelly_files'),
12
- SAMPLES_DIR.join('source_with_non_ruby_files')]
13
- end
14
-
15
- let(:expected_default_directive) do
16
- { Reek::SmellDetectors::IrresponsibleModule => { 'enabled' => false } }
10
+ around do |example|
11
+ Dir.mktmpdir('/tmp') do |tmp|
12
+ Dir.chdir(tmp) do
13
+ example.run
14
+ end
15
+ end
17
16
  end
18
17
 
19
- let(:expected_directory_directives) do
20
- { SAMPLES_DIR.join('three_clean_files') =>
21
- { Reek::SmellDetectors::UtilityFunction => { 'enabled' => false } } }
18
+ let(:expected_exclude_file_names) do
19
+ %w(exclude_me.rb exclude_me_too.rb)
22
20
  end
23
21
 
24
- let(:default_directive_value) do
25
- { Reek::DETECTORS_KEY =>
26
- { 'IrresponsibleModule' => { 'enabled' => false } } }
22
+ let(:expected_exclude_directories) do
23
+ %w(directory_with_trailing_slash/ directory_without_trailing_slash)
27
24
  end
28
25
 
29
- let(:directory_directives_value) do
30
- { Reek::DIRECTORIES_KEY =>
31
- { 'samples/three_clean_files' =>
32
- { 'UtilityFunction' => { 'enabled' => false } } } }
26
+ let(:expected_excluded_paths) do
27
+ (expected_exclude_file_names + expected_exclude_directories).map { |path| Pathname(path) }
33
28
  end
34
29
 
35
- let(:exclude_paths_value) do
36
- { Reek::EXCLUDE_PATHS_KEY =>
37
- ['samples/two_smelly_files',
38
- 'samples/source_with_non_ruby_files'] }
30
+ let(:expected_default_directive) do
31
+ { Reek::SmellDetectors::IrresponsibleModule => { 'enabled' => false } }
39
32
  end
40
33
 
41
- let(:combined_value) do
42
- directory_directives_value.
43
- merge(default_directive_value).
44
- merge(exclude_paths_value)
34
+ let(:expected_directory_directives) do
35
+ { Pathname('directory_with_some_ruby_files') =>
36
+ { Reek::SmellDetectors::UtilityFunction => { 'enabled' => false } } }
45
37
  end
46
38
 
47
39
  describe '#from_path' do
48
- let(:full_configuration_path) { CONFIGURATION_DIR.join('full_configuration.reek') }
40
+ let(:configuration_path) { 'config.reek' }
41
+ let(:configuration) do
42
+ <<-EOF.strip_heredoc
43
+ ---
44
+ detectors:
45
+ IrresponsibleModule:
46
+ enabled: false
47
+
48
+ directories:
49
+ "directory_with_some_ruby_files":
50
+ UtilityFunction:
51
+ enabled: false
52
+
53
+ exclude_paths:
54
+ - "exclude_me.rb"
55
+ - "exclude_me_too.rb"
56
+ - "directory_with_trailing_slash/"
57
+ - "directory_without_trailing_slash"
58
+ EOF
59
+ end
60
+
61
+ before do
62
+ File.write configuration_path, configuration
63
+ FileUtils.touch expected_exclude_file_names
64
+ FileUtils.mkdir expected_exclude_directories
65
+ end
49
66
 
50
67
  it 'properly loads configuration and processes it' do
51
- config = described_class.from_path full_configuration_path
68
+ config = described_class.from_path configuration_path
52
69
 
53
70
  expect(config.send(:excluded_paths)).to eq(expected_excluded_paths)
54
71
  expect(config.send(:default_directive)).to eq(expected_default_directive)
@@ -57,6 +74,32 @@ RSpec.describe Reek::Configuration::AppConfiguration do
57
74
  end
58
75
 
59
76
  describe '#from_hash' do
77
+ before do
78
+ FileUtils.touch expected_exclude_file_names
79
+ FileUtils.mkdir expected_exclude_directories
80
+ end
81
+
82
+ let(:default_directive_value) do
83
+ { Reek::DETECTORS_KEY =>
84
+ { 'IrresponsibleModule' => { 'enabled' => false } } }
85
+ end
86
+
87
+ let(:directory_directives_value) do
88
+ { Reek::DIRECTORIES_KEY =>
89
+ { 'directory_with_some_ruby_files' =>
90
+ { 'UtilityFunction' => { 'enabled' => false } } } }
91
+ end
92
+
93
+ let(:exclude_paths_value) do
94
+ { Reek::EXCLUDE_PATHS_KEY => (expected_exclude_file_names + expected_exclude_directories) }
95
+ end
96
+
97
+ let(:combined_value) do
98
+ directory_directives_value.
99
+ merge(default_directive_value).
100
+ merge(exclude_paths_value)
101
+ end
102
+
60
103
  it 'sets the configuration a unified simple data structure' do
61
104
  config = described_class.from_hash(combined_value)
62
105
 
@@ -79,7 +122,7 @@ RSpec.describe Reek::Configuration::AppConfiguration do
79
122
 
80
123
  describe '#directive_for' do
81
124
  context 'with multiple directory directives and no default directive present' do
82
- let(:source_via) { 'samples/three_clean_files/dummy.rb' }
125
+ let(:source_via) { 'samples/some_files/dummy1.rb' }
83
126
  let(:baz_config) { { IrresponsibleModule: { enabled: false } } }
84
127
  let(:bang_config) { { Attribute: { enabled: true } } }
85
128
  let(:expected_result) { { Reek::SmellDetectors::Attribute => { enabled: true } } }
@@ -87,8 +130,8 @@ RSpec.describe Reek::Configuration::AppConfiguration do
87
130
  let(:directory_directives) do
88
131
  { Reek::DIRECTORIES_KEY =>
89
132
  {
90
- 'samples/two_smelly_files' => baz_config,
91
- 'samples/three_clean_files' => bang_config
133
+ 'samples/some_files' => bang_config,
134
+ 'samples/other_files' => baz_config
92
135
  } }
93
136
  end
94
137
 
@@ -124,7 +167,7 @@ RSpec.describe Reek::Configuration::AppConfiguration do
124
167
  end
125
168
 
126
169
  context 'with a path not covered by a directory directive but a default directive present' do
127
- let(:source_via) { 'spec/samples/three_clean_files/dummy.rb' }
170
+ let(:source_via) { 'samples/some_files/dummy.rb' }
128
171
 
129
172
  let(:configuration_as_hash) do
130
173
  {
@@ -132,7 +175,7 @@ RSpec.describe Reek::Configuration::AppConfiguration do
132
175
  IrresponsibleModule: { enabled: false }
133
176
  },
134
177
  Reek::DIRECTORIES_KEY =>
135
- { 'spec/samples/two_smelly_files' => { Attribute: { enabled: false } } }
178
+ { 'samples/other_files' => { Attribute: { enabled: false } } }
136
179
  }
137
180
  end
138
181
 
@@ -5,15 +5,12 @@ require_lib 'reek/configuration/excluded_paths'
5
5
  RSpec.describe Reek::Configuration::ExcludedPaths do
6
6
  describe '#add' do
7
7
  let(:exclusions) { [].extend(described_class) }
8
+ let(:paths) { ['smelly/sources'] }
9
+ let(:expected_exclude_paths) { [Pathname('smelly/sources')] }
8
10
 
9
- context 'when one of given paths is a file' do
10
- let(:smelly_source_dir) { SAMPLES_DIR.join('smelly_source') }
11
- let(:file_as_path) { smelly_source_dir.join('inline.rb') }
12
- let(:paths) { [smelly_source_dir, file_as_path] }
13
-
14
- it 'raises an error if one of the given paths is a file' do
15
- expect { exclusions.add(paths) }.to raise_error(Reek::Errors::ConfigFileError)
16
- end
11
+ it 'adds the given paths as Pathname' do
12
+ exclusions.add(paths)
13
+ expect(exclusions).to eq expected_exclude_paths
17
14
  end
18
15
  end
19
16
  end
@@ -92,17 +92,18 @@ RSpec.describe Reek::Source::SourceLocator do
92
92
  end
93
93
  end
94
94
 
95
- context 'when path is a directory' do
95
+ context 'when path is a directory or a file' do
96
96
  let(:path) { SAMPLES_DIR.join('source_with_exclude_paths') }
97
97
 
98
98
  let(:expected_paths) do
99
- [path.join('nested/uncommunicative_parameter_name.rb')]
99
+ [path.join('nested/uncommunicative_variable_name.rb')]
100
100
  end
101
101
 
102
102
  let(:paths_that_are_expected_to_be_ignored) do
103
103
  [
104
104
  path.join('ignore_me/uncommunicative_method_name.rb'),
105
- path.join('nested/ignore_me_as_well/irresponsible_module.rb')
105
+ path.join('nested/ignore_me_as_well/irresponsible_module.rb'),
106
+ path.join('nested/uncommunicative_parameter_name.rb')
106
107
  ]
107
108
  end
108
109
 
@@ -111,7 +112,7 @@ RSpec.describe Reek::Source::SourceLocator do
111
112
  expect(sources).not_to include(*paths_that_are_expected_to_be_ignored)
112
113
  end
113
114
 
114
- it 'scans directories that are not excluded' do
115
+ it 'scans directories and files that are not excluded' do
115
116
  sources = described_class.new([path], configuration: configuration).sources
116
117
  expect(sources).to eq expected_paths
117
118
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reek
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.0
4
+ version: 5.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Rutherford
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-09-22 00:00:00.000000000 Z
14
+ date: 2018-10-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: codeclimate-engine-rb
@@ -367,6 +367,7 @@ files:
367
367
  - samples/source_with_exclude_paths/ignore_me/uncommunicative_method_name.rb
368
368
  - samples/source_with_exclude_paths/nested/ignore_me_as_well/irresponsible_module.rb
369
369
  - samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb
370
+ - samples/source_with_exclude_paths/nested/uncommunicative_variable_name.rb
370
371
  - samples/source_with_hidden_directories/.hidden/hidden.rb
371
372
  - samples/source_with_hidden_directories/not_hidden.rb
372
373
  - samples/source_with_non_ruby_files/gibberish