rubycritic 2.5.0 → 2.6.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: 5adb91703b4aa88b8328579edf0f7c085641db2d
4
- data.tar.gz: 64b6f7e6ea46022ab9a585cc77badb21d1a350d2
3
+ metadata.gz: 63f7b195fa4fd7ee15061bdfc41a49f7031e1c6a
4
+ data.tar.gz: bc1b0a3185d7387223aea5467eb62ab1ba93ce9d
5
5
  SHA512:
6
- metadata.gz: 60f3072ea06df5f44c7e609c6e130e65034d07e88a3a03b0aaa50f7542887a0054781aa9c0652945c16420ba3786cd3e3b830164e1cf654e72efdc8c6feaf750
7
- data.tar.gz: beaecb13950c18aa46dd3482ac62da1136caaad868bc451bfc28a46a5c9d8f9329e03f43ad81b2de5a77b0bf722bb5d5bf8deca97040a52def39d855c333d9a2
6
+ metadata.gz: a5d3d4dc64f42b8b28650dd3c182633aa7e9e3f153a48f2315ead8969c79d1c99775975d23ca9236ba1a423f4db0073af35b0e96413abf780e7e4c07c9f57b7c
7
+ data.tar.gz: 27e3289f5e5629763e8bcbd505738f3c8cf5d6a9ffae6f8cff1e6cec2a92837170805f5eeee85abd3a491a16458ff0cab0e090cfe0d9d20ff81020d8648738fc
data/.rubocop.yml CHANGED
@@ -6,6 +6,7 @@ AllCops:
6
6
  - '**/Rakefile'
7
7
  Exclude:
8
8
  - 'test/samples/**/*'
9
+ - 'tmp/**/*'
9
10
  # By default, the rails cops are not run. Override in project or home
10
11
  # directory .rubocop.yml files, or by giving the -R/--rails option.
11
12
  RunRailsCops: false
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 2.6.0 / 2015-01-21
2
+
3
+ * [FEATURE] Add a minimum score option to the command line interface (by Roberto Schneider)
4
+ * [CHANGE] Display the class and module names when the file has no methods
5
+
1
6
  # 2.5.0 / 2015-01-16
2
7
 
3
8
  * [FEATURE] Add a ConsoleReport format (by Josh Bodah)
data/README.md CHANGED
@@ -96,6 +96,7 @@ $ rubycritic --help
96
96
  |--------------------------|-------------------------------------------------------|
97
97
  | `-v/--version` | Displays the current version and exits |
98
98
  | `-p/--path` | Sets the output directory (tmp/rubycritic by default) |
99
+ | `-s/--minimum-score` | Set a minimum score |
99
100
  | `--mode-ci` | Uses CI mode (faster, but only analyses last commit) |
100
101
  | `--deduplicate-symlinks` | De-duplicate symlinks based on their final target |
101
102
  | `--suppress-ratings` | Suppress letter ratings |
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
  require "rubocop/rake_task"
4
+ require "cucumber/rake/task"
4
5
 
5
6
  Rake::TestTask.new do |task|
6
7
  task.libs.push "lib"
@@ -8,6 +9,10 @@ Rake::TestTask.new do |task|
8
9
  task.pattern = "test/**/*_test.rb"
9
10
  end
10
11
 
12
+ Cucumber::Rake::Task.new(:features) do |t|
13
+ t.cucumber_opts = "features --format progress --color"
14
+ end
15
+
11
16
  RuboCop::RakeTask.new
12
17
 
13
- task :default => [:test, :rubocop]
18
+ task :default => [:test, :features, :rubocop]
@@ -0,0 +1,39 @@
1
+ Feature: Break if overall score is bellow minimum
2
+ In order to break the Continuous Integration builds based on a score threshold
3
+ Rubycritic returns the exit status according with the score
4
+
5
+ Scenario: Status indicates a success when not using --minimum-score
6
+ Given the smelly file 'smelly.rb' with a score of 93.75
7
+ When I run rubycritic smelly.rb
8
+ Then the exit status indicates a success
9
+
10
+ Scenario: Status indicates an error when score below the minimum
11
+ Given the smelly file 'smelly.rb' with a score of 93.75
12
+ When I run rubycritic --minimum-score 100 smelly.rb
13
+ Then the exit status indicates an error
14
+
15
+ Scenario: Status indicates a success when score is above the minimum
16
+ Given the smelly file 'smelly.rb' with a score of 93.75
17
+ When I run rubycritic --minimum-score 93 smelly.rb
18
+ Then the exit status indicates a success
19
+
20
+ Scenario: Status indicates a success when score is equal the minimum
21
+ Given the clean file 'clean.rb' with a score of 100
22
+ When I run rubycritic --minimum-score 100 clean.rb
23
+ Then the exit status indicates a success
24
+
25
+ Scenario: Prints the score on output
26
+ Given the smelly file 'smelly.rb' with a score of 93.75
27
+ When I run rubycritic smelly.rb
28
+ Then the output should contain:
29
+ """
30
+ Score: 93.75
31
+ """
32
+
33
+ Scenario: Prints a message informing the score is below the minimum
34
+ Given the empty file 'empty.rb' with a score of 0
35
+ When I run rubycritic --minimum-score 100 empty.rb
36
+ Then the output should contain:
37
+ """
38
+ Score (0.0) is below the minimum 100
39
+ """
@@ -0,0 +1,35 @@
1
+ Feature: Rubycritic can be controlled using command-line options
2
+ In order to change Rubycritic's default behaviour
3
+ As a developer
4
+ I want to supply options on the command line
5
+
6
+ Scenario: return non-zero status on bad option
7
+ When I run rubycritic --no-such-option
8
+ Then the exit status indicates an error
9
+ And it reports the error "Error: invalid option: --no-such-option"
10
+ And there is no output on stdout
11
+
12
+ Scenario: display the current version number
13
+ When I run rubycritic --version
14
+ Then it succeeds
15
+ And it reports the current version
16
+
17
+ Scenario: display the help information
18
+ When I run rubycritic --help
19
+ Then it succeeds
20
+ And it reports:
21
+ """
22
+ Usage: rubycritic [options] [paths]
23
+ -p, --path [PATH] Set path where report will be saved (tmp/rubycritic by default)
24
+ -f, --format [FORMAT] Report smells in the given format:
25
+ html (default)
26
+ json
27
+ console
28
+ -s, --minimum-score [MIN_SCORE] Set a minimum score
29
+ -m, --mode-ci Use CI mode (faster, but only analyses last commit)
30
+ --deduplicate-symlinks De-duplicate symlinks based on their final target
31
+ --suppress-ratings Suppress letter ratings
32
+ -v, --version Show gem's version
33
+ -h, --help Show this message
34
+
35
+ """
@@ -0,0 +1,31 @@
1
+ When(/^I run rubycritic (.*)$/) do |args|
2
+ rubycritic(args)
3
+ end
4
+
5
+ Then(/^the exit status indicates an error$/) do
6
+ expect(last_command_started).to have_exit_status(Rubycritic::Command::StatusReporter::SCORE_BELOW_MINIMUM)
7
+ end
8
+
9
+ Then(/^the exit status indicates a success$/) do
10
+ expect(last_command_started).to have_exit_status(Rubycritic::Command::StatusReporter::SUCCESS)
11
+ end
12
+
13
+ Then(/^it reports:$/) do |report|
14
+ expect(last_command_started).to have_output_on_stdout(report.gsub('\n', "\n"))
15
+ end
16
+
17
+ Then(/^there is no output on stdout$/) do
18
+ expect(last_command_started).to have_output_on_stdout("")
19
+ end
20
+
21
+ Then(/^it reports the current version$/) do
22
+ expect(last_command_started).to have_output("RubyCritic #{Rubycritic::VERSION}\n")
23
+ end
24
+
25
+ Then(/^it reports the error ['"](.*)['"]$/) do |string|
26
+ expect(last_command_started).to have_output_on_stderr(/#{Regexp.escape(string)}/)
27
+ end
28
+
29
+ Then(/^it succeeds$/) do
30
+ expect(last_command_started).to have_exit_status(Rubycritic::Command::StatusReporter::SUCCESS)
31
+ end
@@ -0,0 +1,30 @@
1
+ Given(/^the smelly file 'smelly.rb'/) do
2
+ contents = <<-EOS.strip_heredoc
3
+ class AllTheMethods
4
+ def method_missing(method, *args, &block)
5
+ message = "I"
6
+ eval "message = ' did not'"
7
+ eval "message << ' exist,'"
8
+ eval "message << ' but now'"
9
+ eval "message << ' I do.'"
10
+ self.class.send(:define_method, method) { "I did not exist, but now I do." }
11
+ self.send(method)
12
+ end
13
+ end
14
+ EOS
15
+ write_file("smelly.rb", contents)
16
+ end
17
+
18
+ Given(/^the clean file 'clean.rb'/) do
19
+ contents = <<-EOS.strip_heredoc
20
+ # Explanatory comment
21
+ class Clean
22
+ def foo; end
23
+ end
24
+ EOS
25
+ write_file("clean.rb", contents)
26
+ end
27
+
28
+ Given(/^the empty file 'empty.rb'/) do
29
+ write_file("clean.rb", "")
30
+ end
@@ -0,0 +1,31 @@
1
+ require_relative "../../lib/rubycritic"
2
+ require_relative "../../lib/rubycritic/cli/application"
3
+ require_relative "../../lib/rubycritic/commands/status_reporter"
4
+ require "aruba/cucumber"
5
+ require "minitest/spec"
6
+
7
+ #
8
+ # Provides runner methods used in the cucumber steps.
9
+ #
10
+ class RubycriticWorld
11
+ extend MiniTest::Assertions
12
+ attr_accessor :assertions
13
+
14
+ def initialize
15
+ self.assertions = 0
16
+ end
17
+
18
+ def rubycritic(args)
19
+ run_simple("rubycritic #{args}", false)
20
+ end
21
+ end
22
+
23
+ World do
24
+ RubycriticWorld.new
25
+ end
26
+
27
+ Before do
28
+ Aruba.configure do |config|
29
+ config.exit_timeout = 30
30
+ end
31
+ end
@@ -12,7 +12,6 @@ module Rubycritic
12
12
  end
13
13
 
14
14
  def names
15
- return name_from_path if @analysed_module.methods_count == 0
16
15
  names = node.get_module_names
17
16
  if names.empty?
18
17
  name_from_path
@@ -14,12 +14,18 @@ module Rubycritic
14
14
 
15
15
  def execute
16
16
  parsed_options = @options.parse
17
- ::Rubycritic::CommandFactory.create(parsed_options).execute
18
- STATUS_SUCCESS
17
+
18
+ reporter = Rubycritic::CommandFactory.create(parsed_options.to_h).execute
19
+ print(reporter.status_message)
20
+ reporter.status
19
21
  rescue OptionParser::InvalidOption => error
20
22
  $stderr.puts "Error: #{error}"
21
23
  STATUS_ERROR
22
24
  end
25
+
26
+ def print(message)
27
+ $stdout.puts message
28
+ end
23
29
  end
24
30
  end
25
31
  end
@@ -28,6 +28,10 @@ module Rubycritic
28
28
  @format = format
29
29
  end
30
30
 
31
+ opts.on("-s", "--minimum-score [MIN_SCORE]", "Set a minimum score") do |min_score|
32
+ @minimum_score = Integer(min_score)
33
+ end
34
+
31
35
  opts.on("-m", "--mode-ci", "Use CI mode (faster, but only analyses last commit)") do
32
36
  @mode = :ci
33
37
  end
@@ -51,10 +55,6 @@ module Rubycritic
51
55
  self
52
56
  end
53
57
 
54
- def help_text
55
- @parser.help
56
- end
57
-
58
58
  def to_h
59
59
  {
60
60
  :mode => @mode,
@@ -62,7 +62,9 @@ module Rubycritic
62
62
  :format => @format,
63
63
  :deduplicate_symlinks => @deduplicate_symlinks,
64
64
  :paths => paths,
65
- :suppress_ratings => @suppress_ratings
65
+ :suppress_ratings => @suppress_ratings,
66
+ :help_text => @parser.help,
67
+ :minimum_score => @minimum_score || 0
66
68
  }
67
69
  end
68
70
 
@@ -3,21 +3,24 @@ require "rubycritic/configuration"
3
3
  module Rubycritic
4
4
  class CommandFactory
5
5
  def self.create(options = {})
6
- options_hash = options.to_h
7
- Config.set(options_hash)
8
- case Config.mode
6
+ Config.set(options)
7
+ command_class(Config.mode).new(options)
8
+ end
9
+
10
+ def self.command_class(mode)
11
+ case mode
9
12
  when :version
10
13
  require "rubycritic/commands/version"
11
- Command::Version.new
14
+ Command::Version
12
15
  when :help
13
16
  require "rubycritic/commands/help"
14
- Command::Help.new(options.help_text)
17
+ Command::Help
15
18
  when :ci
16
19
  require "rubycritic/commands/ci"
17
- Command::Ci.new(options_hash[:paths])
20
+ Command::Ci
18
21
  else
19
22
  require "rubycritic/commands/default"
20
- Command::Default.new(options_hash[:paths])
23
+ Command::Default
21
24
  end
22
25
  end
23
26
  end
@@ -0,0 +1,16 @@
1
+ require "rubycritic/commands/status_reporter"
2
+
3
+ module Rubycritic
4
+ module Command
5
+ class Base
6
+ def initialize(options)
7
+ @options = options
8
+ @status_reporter = Rubycritic::Command::StatusReporter.new(@options)
9
+ end
10
+
11
+ def execute
12
+ raise NotImplementedError
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,26 +1,14 @@
1
1
  require "rubycritic/source_control_systems/base"
2
2
  require "rubycritic/analysers_runner"
3
3
  require "rubycritic/reporter"
4
+ require "rubycritic/commands/default"
4
5
 
5
6
  module Rubycritic
6
7
  module Command
7
- class Ci
8
- def initialize(paths)
9
- @paths = paths
10
- Config.source_control_system = SourceControlSystem::Base.create
11
- end
12
-
13
- def execute
14
- report(critique)
15
- end
16
-
8
+ class Ci < Default
17
9
  def critique
18
10
  AnalysersRunner.new(@paths).run
19
11
  end
20
-
21
- def report(analysed_modules)
22
- Reporter.generate_report(analysed_modules)
23
- end
24
12
  end
25
13
  end
26
14
  end
@@ -2,17 +2,20 @@ require "rubycritic/source_control_systems/base"
2
2
  require "rubycritic/analysers_runner"
3
3
  require "rubycritic/revision_comparator"
4
4
  require "rubycritic/reporter"
5
+ require "rubycritic/commands/base"
5
6
 
6
7
  module Rubycritic
7
8
  module Command
8
- class Default
9
- def initialize(paths)
10
- @paths = paths
9
+ class Default < Base
10
+ def initialize(options)
11
+ super
12
+ @paths = options[:paths]
11
13
  Config.source_control_system = SourceControlSystem::Base.create
12
14
  end
13
15
 
14
16
  def execute
15
17
  report(critique)
18
+ @status_reporter
16
19
  end
17
20
 
18
21
  def critique
@@ -22,6 +25,7 @@ module Rubycritic
22
25
 
23
26
  def report(analysed_modules)
24
27
  Reporter.generate_report(analysed_modules)
28
+ @status_reporter.score = analysed_modules.score
25
29
  end
26
30
  end
27
31
  end
@@ -1,12 +1,11 @@
1
+ require "rubycritic/commands/base"
2
+
1
3
  module Rubycritic
2
4
  module Command
3
- class Help
4
- def initialize(help_text)
5
- @help_text = help_text
6
- end
7
-
5
+ class Help < Base
8
6
  def execute
9
- puts @help_text
7
+ puts @options[:help_text]
8
+ @status_reporter
10
9
  end
11
10
  end
12
11
  end
@@ -0,0 +1,43 @@
1
+ module Rubycritic
2
+ module Command
3
+ class StatusReporter
4
+ attr_reader :status, :status_message
5
+ SUCCESS = 0
6
+ SCORE_BELOW_MINIMUM = 1
7
+
8
+ def initialize(options)
9
+ @options = options
10
+ @status = SUCCESS
11
+ end
12
+
13
+ def score=(score)
14
+ @score = score
15
+ update_status
16
+ end
17
+
18
+ private
19
+
20
+ def update_status
21
+ @status = current_status
22
+ update_status_message
23
+ end
24
+
25
+ def current_status
26
+ satisfy_minimum_score_rule ? SUCCESS : SCORE_BELOW_MINIMUM
27
+ end
28
+
29
+ def satisfy_minimum_score_rule
30
+ @score >= @options[:minimum_score]
31
+ end
32
+
33
+ def update_status_message
34
+ case @status
35
+ when SUCCESS
36
+ @status_message = "Score: #{@score}"
37
+ when SCORE_BELOW_MINIMUM
38
+ @status_message = "Score (#{@score}) is below the minimum #{@options[:minimum_score]}"
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,10 +1,12 @@
1
1
  require "rubycritic/version"
2
+ require "rubycritic/commands/base"
2
3
 
3
4
  module Rubycritic
4
5
  module Command
5
- class Version
6
+ class Version < Base
6
7
  def execute
7
8
  puts "RubyCritic #{VERSION}"
9
+ @status_reporter
8
10
  end
9
11
  end
10
12
  end
@@ -1,3 +1,3 @@
1
1
  module Rubycritic
2
- VERSION = "2.5.0"
2
+ VERSION = "2.6.0"
3
3
  end
data/rubycritic.gemspec CHANGED
@@ -27,7 +27,9 @@ Gem::Specification.new do |spec|
27
27
  spec.add_runtime_dependency "parser", ">= 2.2.0", "< 3.0"
28
28
  spec.add_runtime_dependency "colorize"
29
29
 
30
+ spec.add_development_dependency "aruba"
30
31
  spec.add_development_dependency "bundler", "~> 1.3"
32
+ spec.add_development_dependency "cucumber"
31
33
  spec.add_development_dependency "rake"
32
34
  spec.add_development_dependency "minitest", "~> 5.3"
33
35
  spec.add_development_dependency "mocha", "~> 1.0"
@@ -39,13 +39,13 @@ describe Rubycritic::ModulesLocator do
39
39
  end
40
40
 
41
41
  context "when a file has no methods" do
42
- it "returns the name of the file titleized" do
42
+ it "returns the names of all the classes and modules inside the file" do
43
43
  analysed_module = Rubycritic::AnalysedModule.new(
44
44
  :pathname => Pathname.new("test/samples/no_methods.rb"),
45
45
  :methods_count => 0
46
46
  )
47
47
  capture_output_streams do
48
- Rubycritic::ModulesLocator.new(analysed_module).names.must_equal ["NoMethods"]
48
+ Rubycritic::ModulesLocator.new(analysed_module).names.must_equal ["Foo::NoMethods"]
49
49
  end
50
50
  end
51
51
  end
@@ -0,0 +1,67 @@
1
+ require "test_helper"
2
+ require "rubycritic/commands/status_reporter"
3
+ require "rubycritic/cli/options"
4
+
5
+ describe Rubycritic::Command::StatusReporter do
6
+ let(:success_status) { Rubycritic::Command::StatusReporter::SUCCESS }
7
+ let(:score_below_minimum) { Rubycritic::Command::StatusReporter::SCORE_BELOW_MINIMUM }
8
+
9
+ describe "with default options" do
10
+ before do
11
+ @options = Rubycritic::Cli::Options.new([])
12
+ @options.parse
13
+ @reporter = Rubycritic::Command::StatusReporter.new(@options.to_h)
14
+ end
15
+
16
+ it "has a default" do
17
+ @reporter.status.must_equal success_status
18
+ @reporter.status_message.must_be_nil
19
+ end
20
+
21
+ it "accept a score" do
22
+ @reporter.score = 50
23
+ @reporter.status.must_equal success_status
24
+ @reporter.status_message.must_equal "Score: 50"
25
+ end
26
+ end
27
+
28
+ describe "with minimum-score option" do
29
+ before do
30
+ @options = Rubycritic::Cli::Options.new(["-s", "99"])
31
+ @options.parse
32
+ @reporter = Rubycritic::Command::StatusReporter.new(@options.to_h)
33
+ end
34
+
35
+ it "has a default" do
36
+ @reporter.status.must_equal success_status
37
+ @reporter.status_message.must_be_nil
38
+ end
39
+
40
+ describe "when score is below minimum" do
41
+ let(:score) { 98 }
42
+ it "should return the correct status" do
43
+ @reporter.score = score
44
+ @reporter.status.must_equal score_below_minimum
45
+ @reporter.status_message.must_equal "Score (98) is below the minimum 99"
46
+ end
47
+ end
48
+
49
+ describe "when score is equal the minimum" do
50
+ let(:score) { 99 }
51
+ it "should return the correct status" do
52
+ @reporter.score = score
53
+ @reporter.status.must_equal success_status
54
+ @reporter.status_message.must_equal "Score: 99"
55
+ end
56
+ end
57
+
58
+ describe "when score is above the minimum" do
59
+ let(:score) { 100 }
60
+ it "should return the correct status" do
61
+ @reporter.score = score
62
+ @reporter.status.must_equal success_status
63
+ @reporter.status_message.must_equal "Score: 100"
64
+ end
65
+ end
66
+ end
67
+ end
@@ -26,7 +26,7 @@ describe Rubycritic::AnalysedModulesCollection do
26
26
  let(:paths) { "test/samples/" }
27
27
 
28
28
  it "recursively registers all files" do
29
- subject.count.must_equal 13
29
+ subject.count.must_equal Dir["test/samples/**/*.rb"].count
30
30
  end
31
31
  end
32
32
 
@@ -0,0 +1,4 @@
1
+ module Foo
2
+ class NoMethods
3
+ end
4
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubycritic
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guilherme Simoes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-18 00:00:00.000000000 Z
11
+ date: 2016-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: aruba
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: bundler
105
119
  requirement: !ruby/object:Gem::Requirement
@@ -114,6 +128,20 @@ dependencies:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
130
  version: '1.3'
131
+ - !ruby/object:Gem::Dependency
132
+ name: cucumber
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
117
145
  - !ruby/object:Gem::Dependency
118
146
  name: rake
119
147
  requirement: !ruby/object:Gem::Requirement
@@ -189,6 +217,11 @@ files:
189
217
  - README.md
190
218
  - Rakefile
191
219
  - bin/rubycritic
220
+ - features/command_line_interface/minimum_score.feature
221
+ - features/command_line_interface/options.feature
222
+ - features/step_definitions/rubycritic_steps.rb
223
+ - features/step_definitions/sample_file_steps.rb
224
+ - features/support/env.rb
192
225
  - lib/rubycritic.rb
193
226
  - lib/rubycritic/analysers/attributes.rb
194
227
  - lib/rubycritic/analysers/churn.rb
@@ -208,9 +241,11 @@ files:
208
241
  - lib/rubycritic/cli/options.rb
209
242
  - lib/rubycritic/colorize.rb
210
243
  - lib/rubycritic/command_factory.rb
244
+ - lib/rubycritic/commands/base.rb
211
245
  - lib/rubycritic/commands/ci.rb
212
246
  - lib/rubycritic/commands/default.rb
213
247
  - lib/rubycritic/commands/help.rb
248
+ - lib/rubycritic/commands/status_reporter.rb
214
249
  - lib/rubycritic/commands/version.rb
215
250
  - lib/rubycritic/configuration.rb
216
251
  - lib/rubycritic/core/analysed_module.rb
@@ -268,6 +303,7 @@ files:
268
303
  - test/lib/rubycritic/analysers/smells/flay_test.rb
269
304
  - test/lib/rubycritic/analysers/smells/flog_test.rb
270
305
  - test/lib/rubycritic/analysers/smells/reek_test.rb
306
+ - test/lib/rubycritic/commands/status_reporter_test.rb
271
307
  - test/lib/rubycritic/configuration_test.rb
272
308
  - test/lib/rubycritic/core/analysed_module_test.rb
273
309
  - test/lib/rubycritic/core/analysed_modules_collection_test.rb
@@ -298,6 +334,7 @@ files:
298
334
  - test/samples/location/file_with_no_extension
299
335
  - test/samples/methods_count.rb
300
336
  - test/samples/module_names.rb
337
+ - test/samples/no_methods.rb
301
338
  - test/samples/reek/not_smelly.rb
302
339
  - test/samples/reek/smelly.rb
303
340
  - test/samples/unparsable.rb
@@ -335,6 +372,7 @@ test_files:
335
372
  - test/lib/rubycritic/analysers/smells/flay_test.rb
336
373
  - test/lib/rubycritic/analysers/smells/flog_test.rb
337
374
  - test/lib/rubycritic/analysers/smells/reek_test.rb
375
+ - test/lib/rubycritic/commands/status_reporter_test.rb
338
376
  - test/lib/rubycritic/configuration_test.rb
339
377
  - test/lib/rubycritic/core/analysed_module_test.rb
340
378
  - test/lib/rubycritic/core/analysed_modules_collection_test.rb
@@ -365,6 +403,7 @@ test_files:
365
403
  - test/samples/location/file_with_no_extension
366
404
  - test/samples/methods_count.rb
367
405
  - test/samples/module_names.rb
406
+ - test/samples/no_methods.rb
368
407
  - test/samples/reek/not_smelly.rb
369
408
  - test/samples/reek/smelly.rb
370
409
  - test/samples/unparsable.rb