reek 4.5.5 → 4.5.6

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: f744d82cb65c9d8b3d9f360ed948e1bf7944299a
4
- data.tar.gz: e74921da8bed3e617aeb1a80d9085f0876c80f38
3
+ metadata.gz: 6c4b9b3b7dc545af9ebbca5f6f24442fa31e6082
4
+ data.tar.gz: 8deb694c3389aeb962fbeef331eab9ba4706ee0e
5
5
  SHA512:
6
- metadata.gz: 04bc673256d4145a067b4cbe45d9d0d7a2bfd5170779a6ee2520dedc73ec09abbbad073e17d40dd2cbbd70dbab2f5ea297608a244b448fd71020c4525dc76cc9
7
- data.tar.gz: d43b2c46f59d642e127edc26813058937e90ee10811ca5484f6487f2a2908c3bd313a53317a7c00c166b4553d54dbb35b894cc7d8dc9d068fcd3f34c0fe98052
6
+ metadata.gz: d8fc3081171e7e5cf12b19b4ba8c1a46590d5d197d8baf6373a759a88f90f092da133282d50f7a292bcb0fe812c6890d3db87c02b1620af434b8d3c579aa3592
7
+ data.tar.gz: 2474e384c11004a10ede8186caa46a504a0d5a8fdc9b2e5ded5b8fd6bd34b3ffc3f922c04ffce0ed75530002f8fc11ba2bd73ea047a8feb9c5a7dfd7149cbbbf
@@ -1,4 +1,5 @@
1
1
  sudo: false
2
+ dist: trusty
2
3
  cache: bundler
3
4
  language: ruby
4
5
  bundler_args: --without debugging
@@ -6,23 +7,24 @@ script: bundle exec rake ci
6
7
  rvm:
7
8
  - 2.1
8
9
  - 2.2
9
- - 2.3.0
10
- - rbx-2
10
+ - 2.3
11
+ - 2.4
12
+ - jruby-9.1.7.0
13
+ - jruby-head
11
14
  - ruby-head
15
+ - rubinius-3
12
16
  matrix:
13
- include:
14
- - rvm: jruby
15
- env: JRUBY_OPTS='--2.0 --server -Xcompile.invokedynamic=false'
16
- - rvm: jruby-head
17
- env: JRUBY_OPTS='--server -Xcompile.invokedynamic=false'
18
17
  allow_failures:
19
- - rvm: jruby
18
+ - rvm: jruby-9.1.7.0
20
19
  - rvm: jruby-head
21
- - rvm: rbx-2
22
20
  - rvm: ruby-head
21
+ - rvm: rubinius-3
23
22
  fast_finish: true
24
23
  before_install:
25
- - gem install bundler
24
+ - rvm use @global
25
+ - gem uninstall bundler -x
26
+ - gem install bundler --version=1.13.7
27
+ - bundler --version
26
28
  notifications:
27
29
  email:
28
30
  - timo.roessner@googlemail.com
@@ -1,5 +1,10 @@
1
1
  # Change log
2
2
 
3
+ ## 4.5.6 (2017-02-17)
4
+
5
+ * (mvz) Raise on errors inside of Examiner#smells instead of outputting to STDERR
6
+ * (mvz) Update parser dependency
7
+
3
8
  ## 4.5.5 (2017-02-05)
4
9
 
5
10
  * (mvz) Load YAML in code comments safely
@@ -25,10 +30,10 @@
25
30
 
26
31
  ## 4.5.0 (2016-10-12)
27
32
 
28
- * (maxjacobson) Emit fingerprints in Code Climate reporter
29
- * (mvz) Disable progress for piped output
30
- * (mvz) Update progress formatter to match changed file location
31
33
  * (jhubert) Add progress formatters for showing progress on each file
34
+ * (mvz) Update progress formatter to match changed file location
35
+ * (mvz) Disable progress for piped output
36
+ * (maxjacobson) Emit fingerprints in Code Climate reporter
32
37
 
33
38
  ## 4.4.4 (2016-09-29)
34
39
 
data/Dockerfile CHANGED
@@ -20,6 +20,7 @@ USER ${user}
20
20
 
21
21
  WORKDIR ${app_dir}
22
22
 
23
+ RUN gem install rake
23
24
  RUN bundle install --without debugging development
24
25
 
25
26
  VOLUME ${code_dir}
data/Gemfile CHANGED
@@ -10,10 +10,9 @@ group :development do
10
10
  gem 'ataru', '~> 0.2.0'
11
11
  gem 'cucumber', '~> 2.0'
12
12
  gem 'factory_girl', '~> 4.0'
13
- gem 'mutant-rspec', '~> 0.8.8'
14
13
  gem 'rake', '~> 12.0'
15
14
  gem 'rspec', '~> 3.0'
16
- gem 'simplecov', '~> 0.12.0'
15
+ gem 'simplecov', '~> 0.13.0'
17
16
  gem 'yard', '~> 0.9.5'
18
17
 
19
18
  if RUBY_VERSION >= '2.3'
data/README.md CHANGED
@@ -483,7 +483,9 @@ You can also run:
483
483
  bundle exec rake ci
484
484
  ```
485
485
 
486
- This will run everything the default task runs and also [Ataru](https://github.com/CodePadawans/ataru) and [Mutant](https://github.com/mbj/mutant). This is the task that we run on Travis as well and that determines if your pull request is green or red.
486
+ This will run everything the default task runs and also
487
+ [Ataru](https://github.com/CodePadawans/ataru). This is the task that we run on
488
+ Travis as well and that determines if your pull request is green or red.
487
489
 
488
490
  Another useful Rake task is the `console` task. This will throw you right into an environment where you can play around with Reeks modules and classes:
489
491
 
@@ -17,7 +17,7 @@ Given
17
17
  class Klass
18
18
  def nil_checker(argument)
19
19
  if argument.nil?
20
- puts "argument isn't nil!"
20
+ puts "argument is nil!"
21
21
  end
22
22
  end
23
23
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require_relative 'base_command'
3
3
  require_relative '../../examiner'
4
+ require_relative '../../logging_error_handler'
4
5
  require_relative '../../report'
5
6
 
6
7
  module Reek
@@ -23,7 +24,8 @@ module Reek
23
24
  sources.each do |source|
24
25
  reporter.add_examiner Examiner.new(source,
25
26
  filter_by_smells: smell_names,
26
- configuration: configuration)
27
+ configuration: configuration,
28
+ error_handler: LoggingErrorHandler.new)
27
29
  end
28
30
  end
29
31
 
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
+ require_relative 'base_error'
2
3
 
3
4
  module Reek
4
5
  module Errors
5
6
  # Gets raised when trying to configure a detector with an option
6
7
  # which is unknown to it.
7
- class BadDetectorConfigurationKeyInCommentError < RuntimeError
8
+ class BadDetectorConfigurationKeyInCommentError < BaseError
8
9
  UNKNOWN_SMELL_DETECTOR_MESSAGE = <<-EOS.freeze
9
10
 
10
11
  Error: You are trying to configure the smell detector '%s'
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
+ require_relative 'base_error'
2
3
 
3
4
  module Reek
4
5
  module Errors
5
6
  # Gets raised when trying to configure a detector which is unknown to us.
6
7
  # This might happen for multiple reasons. The users might have a typo in
7
8
  # his comment or he might use a detector that does not exist anymore.
8
- class BadDetectorInCommentError < RuntimeError
9
+ class BadDetectorInCommentError < BaseError
9
10
  UNKNOWN_SMELL_DETECTOR_MESSAGE = <<-EOS.freeze
10
11
 
11
12
  Error: You are trying to configure an unknown smell detector '%s' in one
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Reek
4
+ module Errors
5
+ # Base class for all runtime Reek errors
6
+ class BaseError < ::RuntimeError
7
+ end
8
+ end
9
+ end
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
+ require_relative 'base_error'
2
3
 
3
4
  module Reek
4
5
  module Errors
5
6
  # Gets raised when trying to use a configuration for a detector
6
7
  # that can't be parsed into a hash.
7
- class GarbageDetectorConfigurationInCommentError < RuntimeError
8
+ class GarbageDetectorConfigurationInCommentError < BaseError
8
9
  BAD_DETECTOR_CONFIGURATION_MESSAGE = <<-EOS.freeze
9
10
 
10
11
  Error: You are trying to configure the smell detector '%s'.
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+ require_relative 'base_error'
3
+
4
+ module Reek
5
+ module Errors
6
+ # Gets raised when Reek is unable to process the source
7
+ class IncomprehensibleSourceError < BaseError
8
+ INCOMPREHENSIBLE_SOURCE_TEMPLATE = <<-EOS.freeze
9
+ !!!
10
+ Source %s can not be processed by Reek.
11
+
12
+ This is most likely either a bug in your Reek configuration (config file or
13
+ source code comments) or a Reek bug.
14
+
15
+ Please double check your Reek configuration taking the original exception
16
+ below into account - you might have misspelled a smell detector for instance.
17
+ (In the future Reek will handle configuration errors more gracefully, something
18
+ we are working on already).
19
+
20
+ If you feel that this is not a problem with your Reek configuration but with
21
+ Reek itself it would be great if you could report this back to the Reek
22
+ team by opening up a corresponding issue at https://github.com/troessner/reek/issues.
23
+
24
+ Please make sure to include the source in question, the Reek version
25
+ and the original exception below.
26
+
27
+ Exception message:
28
+
29
+ %s
30
+
31
+ Original exception:
32
+
33
+ %s
34
+
35
+ !!!
36
+ EOS
37
+
38
+ def initialize(origin:, original_exception:)
39
+ message = format(INCOMPREHENSIBLE_SOURCE_TEMPLATE,
40
+ origin,
41
+ original_exception.message,
42
+ original_exception.backtrace.join("\n\t"))
43
+ super message
44
+ end
45
+ end
46
+ end
47
+ end
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require_relative 'context_builder'
3
- require_relative 'errors/bad_detector_in_comment_error'
4
- require_relative 'errors/garbage_detector_configuration_in_comment_error'
5
3
  require_relative 'detector_repository'
4
+ require_relative 'errors/incomprehensible_source_error'
6
5
  require_relative 'source/source_code'
7
6
 
8
7
  module Reek
@@ -11,35 +10,13 @@ module Reek
11
10
  #
12
11
  # @public
13
12
  class Examiner
14
- INCOMPREHENSIBLE_SOURCE_TEMPLATE = <<-EOS.freeze
15
- !!!
16
- Source %s can not be processed by Reek.
17
-
18
- This is most likely either a bug in your Reek configuration (config file or
19
- source code comments) or a Reek bug.
20
-
21
- Please double check your Reek configuration taking the original exception
22
- below into account - you might have misspelled a smell detector for instance.
23
- (In the future Reek will handle configuration errors more gracefully, something
24
- we are working on already).
25
-
26
- If you feel that this is not a problem with your Reek configuration but with
27
- Reek itself it would be great if you could report this back to the Reek
28
- team by opening up a corresponding issue at https://github.com/troessner/reek/issues.
29
-
30
- Please make sure to include the source in question, the Reek version
31
- and the original exception below.
32
-
33
- Exception message:
34
-
35
- %s
36
-
37
- Original exception:
38
-
39
- %s
13
+ # Handles no errors
14
+ class NullHandler
15
+ def handle(_exception)
16
+ false
17
+ end
18
+ end
40
19
 
41
- !!!
42
- EOS
43
20
  #
44
21
  # Creates an Examiner which scans the given +source+ for code smells.
45
22
  #
@@ -57,11 +34,13 @@ module Reek
57
34
  def initialize(source,
58
35
  filter_by_smells: [],
59
36
  configuration: Configuration::AppConfiguration.default,
60
- detector_repository_class: DetectorRepository)
37
+ detector_repository_class: DetectorRepository,
38
+ error_handler: NullHandler.new)
61
39
  @source = Source::SourceCode.from(source)
62
40
  @smell_types = detector_repository_class.eligible_smell_types(filter_by_smells)
63
41
  @detector_repository = detector_repository_class.new(smell_types: @smell_types,
64
42
  configuration: configuration.directive_for(description))
43
+ @error_handler = error_handler
65
44
  end
66
45
 
67
46
  # @return [String] origin of the source being analysed
@@ -120,16 +99,8 @@ module Reek
120
99
  return [] unless syntax_tree
121
100
  begin
122
101
  examine_tree
123
- rescue Errors::BadDetectorInCommentError,
124
- Errors::GarbageDetectorConfigurationInCommentError,
125
- Errors::BadDetectorConfigurationKeyInCommentError => exception
126
- warn exception
127
- []
128
- rescue StandardError => exception
129
- warn format(INCOMPREHENSIBLE_SOURCE_TEMPLATE,
130
- origin,
131
- exception.message,
132
- exception.backtrace.join("\n\t"))
102
+ rescue Errors::BaseError => exception
103
+ raise unless @error_handler.handle exception
133
104
  []
134
105
  end
135
106
  end
@@ -142,6 +113,10 @@ module Reek
142
113
  ContextBuilder.new(syntax_tree).context_tree.flat_map do |element|
143
114
  detector_repository.examine(element)
144
115
  end
116
+ rescue Errors::BaseError
117
+ raise
118
+ rescue StandardError => exception
119
+ raise Errors::IncomprehensibleSourceError, origin: origin, original_exception: exception
145
120
  end
146
121
  end
147
122
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ require_relative 'errors/bad_detector_configuration_key_in_comment_error'
3
+ require_relative 'errors/bad_detector_in_comment_error'
4
+ require_relative 'errors/garbage_detector_configuration_in_comment_error'
5
+ require_relative 'errors/incomprehensible_source_error'
6
+
7
+ module Reek
8
+ # Handles errors by logging to stderr
9
+ class LoggingErrorHandler
10
+ def handle(exception)
11
+ warn exception
12
+ true
13
+ end
14
+ end
15
+ end
@@ -432,7 +432,7 @@ LongYieldList:
432
432
  ManualDispatch:
433
433
  remediation_points: 350_000
434
434
  content: |
435
- Reek reports a _Manual Dispatch_ smell if it finds source code that manually checks whether an object responds to a method before that method is called. Manual dispatch is a type of [Simulated Polymorphism](Simulated-Polymorphism.md) which leads to code that is harder to reason about, debug, and refactor.
435
+ Reek reports a _Manual Dispatch_ smell if it finds source code that manually checks whether an object responds to a method before that method is called. Manual dispatch is a type of Simulated Polymorphism which leads to code that is harder to reason about, debug, and refactor.
436
436
 
437
437
  ## Example
438
438
 
@@ -7,6 +7,6 @@ module Reek
7
7
  # @public
8
8
  module Version
9
9
  # @public
10
- STRING = '4.5.5'.freeze
10
+ STRING = '4.5.6'.freeze
11
11
  end
12
12
  end
@@ -22,6 +22,6 @@ Gem::Specification.new do |s|
22
22
  s.summary = 'Code smell detector for Ruby'
23
23
 
24
24
  s.add_runtime_dependency 'codeclimate-engine-rb', '~> 0.4.0'
25
- s.add_runtime_dependency 'parser', '~> 2.3.1', '>= 2.3.1.2'
25
+ s.add_runtime_dependency 'parser', '< 2.5', '>= 2.3.1.2'
26
26
  s.add_runtime_dependency 'rainbow', '~> 2.0'
27
27
  end
@@ -122,30 +122,29 @@ RSpec.describe Reek::Examiner do
122
122
  described_class.new source
123
123
  end
124
124
 
125
- it 'returns no smell warnings' do
126
- Reek::CLI::Silencer.silently do
127
- expect(examiner.smells).to be_empty
128
- end
125
+ it 'raises an incomprehensible source error' do
126
+ expect { examiner.smells }.to raise_error Reek::Errors::IncomprehensibleSourceError
129
127
  end
130
128
 
131
- it 'prints the origin' do
129
+ it 'explains the origin of the error' do
132
130
  origin = 'string'
133
- expect { examiner.smells }.to output(/#{origin}/).to_stderr
131
+ expect { examiner.smells }.to raise_error.with_message(/#{origin}/)
134
132
  end
135
133
 
136
134
  it 'explains what to do' do
137
135
  explanation = 'Please double check your Reek configuration'
138
- expect { examiner.smells }.to output(/#{explanation}/).to_stderr
136
+ expect { examiner.smells }.to raise_error.with_message(/#{explanation}/)
139
137
  end
140
138
 
141
- it 'contains a message' do
139
+ it 'contains the original error message' do
142
140
  original = 'Looks like bad source'
143
- expect { examiner.smells }.to output(/#{original}/).to_stderr
141
+ expect { examiner.smells }.to raise_error.with_message(/#{original}/)
144
142
  end
145
143
  end
146
144
  end
147
145
 
148
146
  describe 'bad comment config' do
147
+ let(:examiner) { described_class.new(source) }
149
148
  context 'unknown smell detector' do
150
149
  let(:source) do
151
150
  <<-EOS
@@ -154,21 +153,21 @@ RSpec.describe Reek::Examiner do
154
153
  EOS
155
154
  end
156
155
 
157
- it 'prints out a proper message' do
158
- expected_output = "You are trying to configure an unknown smell detector 'DoesNotExist'"
156
+ it 'raises a bad detector name error' do
157
+ expect { examiner.smells }.to raise_error Reek::Errors::BadDetectorInCommentError
158
+ end
159
+
160
+ it 'explains the reason for the error' do
161
+ message = "You are trying to configure an unknown smell detector 'DoesNotExist'"
159
162
 
160
- expect do
161
- described_class.new(source).smells
162
- end.to output(/#{expected_output}/).to_stderr
163
+ expect { examiner.smells }.to raise_error.with_message(/#{message}/)
163
164
  end
164
165
 
165
- it 'prints out a line and a source' do
166
- expected_output = "The source is 'string' and the comment belongs "\
167
- 'to the expression starting in line 2.'
166
+ it 'explains the origin of the error' do
167
+ details = "The source is 'string' and the comment belongs "\
168
+ 'to the expression starting in line 2.'
168
169
 
169
- expect do
170
- described_class.new(source).smells
171
- end.to output(/#{expected_output}/).to_stderr
170
+ expect { examiner.smells }.to raise_error.with_message(/#{details}/)
172
171
  end
173
172
  end
174
173
 
@@ -180,21 +179,21 @@ RSpec.describe Reek::Examiner do
180
179
  EOS
181
180
  end
182
181
 
183
- it 'prints out a proper message' do
184
- expected_output = "Error: You are trying to configure the smell detector 'UncommunicativeMethodName'"
182
+ it 'raises a garbarge configuration error' do
183
+ expect { examiner.smells }.to raise_error Reek::Errors::GarbageDetectorConfigurationInCommentError
184
+ end
185
+
186
+ it 'explains the reason for the error' do
187
+ message = "Error: You are trying to configure the smell detector 'UncommunicativeMethodName'"
185
188
 
186
- expect do
187
- described_class.new(source).smells
188
- end.to output(/#{expected_output}/).to_stderr
189
+ expect { examiner.smells }.to raise_error.with_message(/#{message}/)
189
190
  end
190
191
 
191
- it 'prints out a line and a source' do
192
- expected_output = "The source is 'string' and "\
193
- 'the comment belongs to the expression starting in line 2'
192
+ it 'explains the origin of the error' do
193
+ details = "The source is 'string' and the comment belongs "\
194
+ 'to the expression starting in line 2.'
194
195
 
195
- expect do
196
- described_class.new(source).smells
197
- end.to output(/#{expected_output}/).to_stderr
196
+ expect { examiner.smells }.to raise_error.with_message(/#{details}/)
198
197
  end
199
198
  end
200
199
  end
@@ -0,0 +1,24 @@
1
+ require_relative '../spec_helper'
2
+ require_lib 'reek/logging_error_handler'
3
+
4
+ RSpec.describe Reek::LoggingErrorHandler do
5
+ describe '#handle' do
6
+ let(:exception) { RuntimeError.new('some message') }
7
+ let(:handler) { described_class.new }
8
+
9
+ it "outputs the exception's message to stderr" do
10
+ expect { handler.handle(exception) }.
11
+ to output(/some message/).to_stderr
12
+ end
13
+
14
+ it 'indicates the exception has been appropriately handled' do
15
+ result = false
16
+
17
+ Reek::CLI::Silencer.silently do
18
+ result = handler.handle(exception)
19
+ end
20
+
21
+ expect(result).to be_truthy
22
+ end
23
+ end
24
+ end
@@ -84,9 +84,9 @@ RSpec.configure do |config|
84
84
  mocks.verify_doubled_constant_names = true
85
85
  end
86
86
 
87
- # Avoid infinitely running tests. This is mainly useful when running mutant.
88
- # Set the DEBUG environment variable to something truthy like '1' to disable
89
- # this and allow using pry without specs failing.
87
+ # Avoid infinitely running tests. This is mainly useful when running a
88
+ # mutation tester. Set the DEBUG environment variable to something truthy
89
+ # like '1' to disable this and allow using pry without specs failing.
90
90
  unless ENV['DEBUG']
91
91
  config.around(:each) do |example|
92
92
  Timeout.timeout(5, &example)
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: 4.5.5
4
+ version: 4.5.6
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: 2017-02-05 00:00:00.000000000 Z
14
+ date: 2017-02-18 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: codeclimate-engine-rb
@@ -31,9 +31,9 @@ dependencies:
31
31
  name: parser
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - "~>"
34
+ - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: 2.3.1
36
+ version: '2.5'
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: 2.3.1.2
@@ -41,9 +41,9 @@ dependencies:
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: 2.3.1
46
+ version: '2.5'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: 2.3.1.2
@@ -226,8 +226,11 @@ files:
226
226
  - lib/reek/detector_repository.rb
227
227
  - lib/reek/errors/bad_detector_configuration_key_in_comment_error.rb
228
228
  - lib/reek/errors/bad_detector_in_comment_error.rb
229
+ - lib/reek/errors/base_error.rb
229
230
  - lib/reek/errors/garbage_detector_configuration_in_comment_error.rb
231
+ - lib/reek/errors/incomprehensible_source_error.rb
230
232
  - lib/reek/examiner.rb
233
+ - lib/reek/logging_error_handler.rb
231
234
  - lib/reek/rake/task.rb
232
235
  - lib/reek/report.rb
233
236
  - lib/reek/report/base_report.rb
@@ -351,6 +354,7 @@ files:
351
354
  - spec/reek/context_builder_spec.rb
352
355
  - spec/reek/detector_repository_spec.rb
353
356
  - spec/reek/examiner_spec.rb
357
+ - spec/reek/logging_error_handler_spec.rb
354
358
  - spec/reek/rake/task_spec.rb
355
359
  - spec/reek/report/code_climate/code_climate_configuration_spec.rb
356
360
  - spec/reek/report/code_climate/code_climate_fingerprint_spec.rb
@@ -407,7 +411,6 @@ files:
407
411
  - tasks/ataru.rake
408
412
  - tasks/configuration.rake
409
413
  - tasks/console.rake
410
- - tasks/mutant.rake
411
414
  - tasks/reek.rake
412
415
  - tasks/rubocop.rake
413
416
  - tasks/test.rake
@@ -1,14 +0,0 @@
1
- desc 'Runs mutant'
2
- task :mutant do
3
- command = <<-EOS
4
- RUBY_THREAD_VM_STACK_SIZE=64000\
5
- bundle exec mutant\
6
- --include lib\
7
- --require reek\
8
- --use rspec\
9
- --since master^\
10
- --jobs 4 'Reek*'
11
- EOS
12
- system command
13
- abort unless $CHILD_STATUS.success?
14
- end