rubycritic 3.0.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +9 -0
- data/README.md +9 -6
- data/ROADMAP.md +56 -0
- data/docs/building-own-code-climate.md +4 -0
- data/features/command_line_interface/minimum_score.feature +1 -1
- data/features/command_line_interface/options.feature +1 -1
- data/lib/rubycritic/analysis_summary.rb +40 -0
- data/lib/rubycritic/cli/options.rb +1 -1
- data/lib/rubycritic/core/analysed_module.rb +20 -0
- data/lib/rubycritic/core/analysed_modules_collection.rb +8 -0
- data/lib/rubycritic/generators/html/assets/fonts/FontAwesome.otf +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/Roboto-Medium.ttf +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/Roboto-Regular.ttf +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.eot +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.svg +2671 -0
- data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.woff +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.woff2 +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.svg +288 -0
- data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/lib/rubycritic/generators/html/assets/images/logo.png +0 -0
- data/lib/rubycritic/generators/html/assets/javascripts/application.js +221 -72
- data/lib/rubycritic/generators/html/assets/javascripts/bootstrap.min.js +7 -0
- data/lib/rubycritic/generators/html/assets/javascripts/jquery.min.js +4 -0
- data/lib/rubycritic/generators/html/assets/javascripts/jquery.scrollTo.min.js +7 -0
- data/lib/rubycritic/generators/html/assets/javascripts/jquery.tablesorter.js +1031 -2089
- data/lib/rubycritic/generators/html/assets/javascripts/jquery.tablesorter.min.js +4 -0
- data/lib/rubycritic/generators/html/assets/javascripts/{jquery.timeago-v1.4.1.js → jquery.timeago.js} +31 -14
- data/lib/rubycritic/generators/html/assets/javascripts/prettify.js +46 -0
- data/lib/rubycritic/generators/html/assets/stylesheets/application.css +422 -197
- data/lib/rubycritic/generators/html/assets/stylesheets/bootstrap.min.css +6 -0
- data/lib/rubycritic/generators/html/assets/stylesheets/font-awesome.min.css +4 -0
- data/lib/rubycritic/generators/html/assets/stylesheets/prettify.css +1 -0
- data/lib/rubycritic/generators/html/overview.rb +2 -0
- data/lib/rubycritic/generators/html/templates/code_file.html.erb +56 -33
- data/lib/rubycritic/generators/html/templates/code_index.html.erb +45 -30
- data/lib/rubycritic/generators/html/templates/layouts/application.html.erb +43 -21
- data/lib/rubycritic/generators/html/templates/overview.html.erb +62 -7
- data/lib/rubycritic/generators/html/templates/smells_index.html.erb +47 -26
- data/lib/rubycritic/generators/html/templates/smelly_line.html.erb +16 -12
- data/lib/rubycritic/generators/html/turbulence.rb +2 -2
- data/lib/rubycritic/generators/html/view_helpers.rb +4 -0
- data/lib/rubycritic/source_control_systems/base.rb +1 -0
- data/lib/rubycritic/source_control_systems/perforce.rb +108 -0
- data/lib/rubycritic/version.rb +1 -1
- data/rubycritic.gemspec +1 -1
- data/test/analysers_test_helper.rb +7 -0
- data/test/lib/rubycritic/analysis_summary_test.rb +29 -0
- data/test/lib/rubycritic/generators/console_report_test.rb +3 -3
- data/test/lib/rubycritic/source_control_systems/perforce_test.rb +162 -0
- metadata +34 -9
- data/lib/rubycritic/generators/html/assets/javascripts/jquery-2.1.0.js +0 -9111
- data/lib/rubycritic/generators/html/assets/javascripts/jquery.floatThead-v1.2.7.js +0 -754
- data/lib/rubycritic/generators/html/assets/javascripts/jquery.scrollTo-1.4.11.js +0 -186
- data/lib/rubycritic/generators/html/assets/javascripts/prettify-4-Mar-2013.js +0 -1662
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'json'
|
3
|
-
|
4
3
|
module RubyCritic
|
5
4
|
module Turbulence
|
6
5
|
def self.data(analysed_modules)
|
@@ -8,7 +7,8 @@ module RubyCritic
|
|
8
7
|
{
|
9
8
|
name: analysed_module.name,
|
10
9
|
x: analysed_module.churn,
|
11
|
-
y: analysed_module.complexity
|
10
|
+
y: analysed_module.complexity,
|
11
|
+
rating: analysed_module.rating
|
12
12
|
}
|
13
13
|
end.to_json
|
14
14
|
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'date'
|
3
|
+
|
4
|
+
module RubyCritic
|
5
|
+
module SourceControlSystem
|
6
|
+
PerforceStats = Struct.new(:filename, :revision, :last_commit, :opened?)
|
7
|
+
|
8
|
+
class Perforce < Base
|
9
|
+
register_system
|
10
|
+
|
11
|
+
def self.supported?
|
12
|
+
p4_client = ENV['P4CLIENT'] || ''
|
13
|
+
p4_installed? && !p4_client.empty? && in_client_directory?
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.p4_installed?
|
17
|
+
p4_exe = Gem.win_platform? ? 'p4.exe' : 'p4'
|
18
|
+
ENV['PATH'].split(File::PATH_SEPARATOR).any? do |directory|
|
19
|
+
File.executable?(File.join(directory, p4_exe))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.in_client_directory?
|
24
|
+
p4_info = `p4 info`.each_line.select do |line|
|
25
|
+
line.start_with?('Client root', 'Current directory')
|
26
|
+
end
|
27
|
+
|
28
|
+
client_directory, current_directory = p4_info.map! { |info| info.split(': ').last.chomp }
|
29
|
+
child?(client_directory, current_directory)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.child?(root, target)
|
33
|
+
root_size = root.size
|
34
|
+
target_size = target.size
|
35
|
+
return false if target_size < root_size
|
36
|
+
target[0...root_size] == root &&
|
37
|
+
(target_size == root_size || [File::ALT_SEPARATOR, File::SEPARATOR].include?(target[root_size]))
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.to_s
|
41
|
+
'Perforce'
|
42
|
+
end
|
43
|
+
|
44
|
+
def revisions_count(path)
|
45
|
+
perforce_files[Perforce.key_file(path)].revision.to_i
|
46
|
+
end
|
47
|
+
|
48
|
+
def date_of_last_commit(path)
|
49
|
+
DateTime.strptime(perforce_files[Perforce.key_file(path)].last_commit, '%s').strftime('%Y-%m-%d %H:%M:%S %z')
|
50
|
+
end
|
51
|
+
|
52
|
+
def revision?
|
53
|
+
!perforce_files.values.count(&:opened?).zero?
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.build_file_cache
|
57
|
+
# Chun is very slow if files stats are requested one by one
|
58
|
+
# this fill a hash with the result of all ruby file in the current directory (and sub-directories)
|
59
|
+
{}.tap do |file_cache|
|
60
|
+
line_aggregator = []
|
61
|
+
`p4 fstat -F "clientFile=*.rb" -T clientFile,headRev,headTime,action #{Dir.getwd}...`.each_line do |line|
|
62
|
+
Perforce.compute_line(file_cache, line_aggregator, line)
|
63
|
+
end
|
64
|
+
# handle remaining lines
|
65
|
+
Perforce.insert_file_cache(file_cache, line_aggregator) if line_aggregator.any?
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.compute_line(file_cache, line_aggregator, line)
|
70
|
+
if line.chomp.empty?
|
71
|
+
Perforce.insert_file_cache(file_cache, line_aggregator)
|
72
|
+
else
|
73
|
+
line_aggregator << line
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.insert_file_cache(file_cache, lines)
|
78
|
+
perforce_stat = Perforce.compute_cache_lines(lines)
|
79
|
+
file_cache[perforce_stat.filename] = perforce_stat
|
80
|
+
lines.clear
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.compute_cache_lines(lines)
|
84
|
+
perforce_lines = Hash[*lines.map { |line| line.split[1..-1] }.flatten]
|
85
|
+
PerforceStats.new(
|
86
|
+
Perforce.normalized_file_path(perforce_lines['clientFile']),
|
87
|
+
perforce_lines['headRev'],
|
88
|
+
perforce_lines['headTime'],
|
89
|
+
perforce_lines.key?('action')
|
90
|
+
)
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.key_file(source_file_path)
|
94
|
+
Perforce.normalized_file_path(File.join(Dir.getwd, source_file_path))
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.normalized_file_path(file_path)
|
98
|
+
file_path.downcase.tr('\\', '/')
|
99
|
+
end
|
100
|
+
|
101
|
+
private
|
102
|
+
|
103
|
+
def perforce_files
|
104
|
+
@perforce_files ||= Perforce.build_file_cache
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
data/lib/rubycritic/version.rb
CHANGED
data/rubycritic.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_runtime_dependency 'flay', '~> 2.8'
|
26
26
|
spec.add_runtime_dependency 'flog', '~> 4.4'
|
27
27
|
spec.add_runtime_dependency 'reek', '~> 4.4'
|
28
|
-
spec.add_runtime_dependency 'parser', '2.3.1.
|
28
|
+
spec.add_runtime_dependency 'parser', '2.3.1.4'
|
29
29
|
spec.add_runtime_dependency 'ruby_parser', '~> 3.8'
|
30
30
|
spec.add_runtime_dependency 'rainbow'
|
31
31
|
spec.add_runtime_dependency 'launchy', '2.4.3'
|
@@ -2,3 +2,10 @@
|
|
2
2
|
require 'test_helper'
|
3
3
|
|
4
4
|
class AnalysedModuleDouble < OpenStruct; end
|
5
|
+
|
6
|
+
require_relative '../lib/rubycritic/core/analysed_modules_collection'
|
7
|
+
class AnalysedModulesCollectionDouble < RubyCritic::AnalysedModulesCollection
|
8
|
+
def initialize(module_doubles)
|
9
|
+
@modules = module_doubles
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'test_helper'
|
3
|
+
require 'rubycritic/analysis_summary'
|
4
|
+
|
5
|
+
module RubyCritic
|
6
|
+
describe AnalysisSummary do
|
7
|
+
before do
|
8
|
+
analysed_modules = AnalysedModulesCollectionDouble.new(
|
9
|
+
[
|
10
|
+
AnalysedModuleDouble.new(rating: 'A', churn: 2, smells: [:a, :b, :c]),
|
11
|
+
AnalysedModuleDouble.new(rating: 'A', churn: 3, smells: [:b]),
|
12
|
+
AnalysedModuleDouble.new(rating: 'A', churn: 4, smells: [:x, :y]),
|
13
|
+
AnalysedModuleDouble.new(rating: 'B', churn: 5, smells: [:a, :z])
|
14
|
+
]
|
15
|
+
)
|
16
|
+
@summary = RubyCritic::AnalysisSummary.generate(analysed_modules)
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '.root' do
|
20
|
+
it 'computes correct summary' do
|
21
|
+
@summary['A'].to_a.must_equal({ files: 3, churns: 9, smells: 6 }.to_a)
|
22
|
+
@summary['B'].to_a.must_equal({ files: 1, churns: 5, smells: 2 }.to_a)
|
23
|
+
@summary['C'].to_a.must_equal({ files: 0, churns: 0, smells: 0 }.to_a)
|
24
|
+
@summary['D'].to_a.must_equal({ files: 0, churns: 0, smells: 0 }.to_a)
|
25
|
+
@summary['F'].to_a.must_equal({ files: 0, churns: 0, smells: 0 }.to_a)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -28,15 +28,15 @@ describe RubyCritic::Generator::ConsoleReport do
|
|
28
28
|
assert output_contains?('Rating', @mock_analysed_module.rating)
|
29
29
|
end
|
30
30
|
|
31
|
-
it "includes the module's
|
31
|
+
it "includes the module's churn metric in the report" do
|
32
32
|
assert output_contains?('Churn', @mock_analysed_module.churn)
|
33
33
|
end
|
34
34
|
|
35
|
-
it "includes the module's
|
35
|
+
it "includes the module's complexity in the report" do
|
36
36
|
assert output_contains?('Complexity', @mock_analysed_module.complexity)
|
37
37
|
end
|
38
38
|
|
39
|
-
it "includes the module's
|
39
|
+
it "includes the module's duplication metric in the report" do
|
40
40
|
assert output_contains?('Duplication', @mock_analysed_module.duplication)
|
41
41
|
end
|
42
42
|
|
@@ -0,0 +1,162 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'test_helper'
|
3
|
+
require 'rubycritic/source_control_systems/base'
|
4
|
+
|
5
|
+
describe RubyCritic::SourceControlSystem::Perforce do
|
6
|
+
before do
|
7
|
+
@system = RubyCritic::SourceControlSystem::Perforce.new
|
8
|
+
end
|
9
|
+
|
10
|
+
describe RubyCritic::SourceControlSystem::Perforce do
|
11
|
+
describe '::supported?' do
|
12
|
+
let(:path) do
|
13
|
+
['/some/path', File::PATH_SEPARATOR, '/perforce/path/p4', File::PATH_SEPARATOR + '/other/useless_path'].join
|
14
|
+
end
|
15
|
+
let(:p4_client) { 'UNIT_TEST_CLIENT' }
|
16
|
+
|
17
|
+
context 'directory is under p4 client' do
|
18
|
+
it 'detects if Perforce is the source control used' do
|
19
|
+
ENV['PATH'] = path
|
20
|
+
ENV['P4CLIENT'] = p4_client
|
21
|
+
Gem.stubs(:win_platform?).returns(false)
|
22
|
+
File.stubs(:executable?).with('/some/path/p4').returns(false)
|
23
|
+
File.stubs(:executable?).with('/perforce/path/p4/p4').returns(true)
|
24
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:in_client_directory?).returns(true)
|
25
|
+
|
26
|
+
RubyCritic::SourceControlSystem::Perforce.supported?.must_equal true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'directory is not under p4 client' do
|
31
|
+
it 'returns false if no p4 executables are found' do
|
32
|
+
ENV['PATH'] = path
|
33
|
+
ENV['P4CLIENT'] = nil
|
34
|
+
Gem.stubs(:win_platform?).returns(false)
|
35
|
+
File.stubs(:executable?).with('/some/path/p4').returns(false)
|
36
|
+
File.stubs(:executable?).with('/perforce/path/p4/p4').returns(false)
|
37
|
+
File.stubs(:executable?).with('/other/useless_path/p4').returns(false)
|
38
|
+
|
39
|
+
RubyCritic::SourceControlSystem::Perforce.supported?.must_equal false
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'returns false if no p4 client is set in environment variables' do
|
43
|
+
ENV['PATH'] = path
|
44
|
+
ENV['P4CLIENT'] = nil
|
45
|
+
Gem.stubs(:win_platform?).returns(false)
|
46
|
+
File.stubs(:executable?).with('/some/path/p4').returns(false)
|
47
|
+
File.stubs(:executable?).with('/perforce/path/p4/p4').returns(true)
|
48
|
+
|
49
|
+
RubyCritic::SourceControlSystem::Perforce.supported?.must_equal false
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'returns false if the current directory is not under p4 client' do
|
53
|
+
ENV['PATH'] = path
|
54
|
+
ENV['P4CLIENT'] = p4_client
|
55
|
+
Gem.stubs(:win_platform?).returns(false)
|
56
|
+
File.stubs(:executable?).with('/some/path/p4').returns(false)
|
57
|
+
File.stubs(:executable?).with('/perforce/path/p4/p4').returns(true)
|
58
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:in_client_directory?).returns(false)
|
59
|
+
|
60
|
+
RubyCritic::SourceControlSystem::Perforce.supported?.must_equal false
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '::in_client_directory?' do
|
66
|
+
context 'current directory is in p4 client' do
|
67
|
+
let(:p4_info) do
|
68
|
+
<<-END
|
69
|
+
User name: unit_test_user
|
70
|
+
Client name: UNIT_TEST_CLIENT
|
71
|
+
Client host: MACHINE_NAME
|
72
|
+
Client root: /path/to/client/root
|
73
|
+
Current directory: /path/to/client/root/ruby_project/unit_test
|
74
|
+
Peer address: 127.0.0.1::3000
|
75
|
+
Client address: 127.0.0.1
|
76
|
+
Server address: the.server.address.com
|
77
|
+
END
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'calls p4 info and parse the result' do
|
81
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:`).with('p4 info').returns(p4_info)
|
82
|
+
RubyCritic::SourceControlSystem::Perforce.in_client_directory?.must_equal true
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context 'current directory is not in p4 client' do
|
87
|
+
let(:p4_info) do
|
88
|
+
<<-END
|
89
|
+
User name: unit_test_user
|
90
|
+
Client name: UNIT_TEST_CLIENT
|
91
|
+
Client host: MACHINE_NAME
|
92
|
+
Client root: /path/to/client/root
|
93
|
+
Current directory: /somewhere/else/ruby_project/unit_test
|
94
|
+
Peer address: 127.0.0.1::3000
|
95
|
+
Client address: 127.0.0.1
|
96
|
+
Server address: the.server.address.com
|
97
|
+
END
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'calls p4 info and parse the result' do
|
101
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:`).with('p4 info').returns(p4_info)
|
102
|
+
RubyCritic::SourceControlSystem::Perforce.in_client_directory?.must_equal false
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe 'retrieve informations' do
|
108
|
+
let(:p4_stats) do
|
109
|
+
<<-END
|
110
|
+
... clientFile /path/to/client/a_ruby_file.rb
|
111
|
+
... headTime 1473075551
|
112
|
+
... headRev 16
|
113
|
+
|
114
|
+
... clientFile /path/to/client/second_ruby_file.rb
|
115
|
+
... headTime 1464601668
|
116
|
+
... action opened
|
117
|
+
... headRev 12
|
118
|
+
END
|
119
|
+
end
|
120
|
+
|
121
|
+
describe 'build_file_cache' do
|
122
|
+
it 'builds the perforce file cache' do
|
123
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:`).returns(p4_stats)
|
124
|
+
file_cache = @system.send(:perforce_files)
|
125
|
+
file_cache.size.must_equal 2
|
126
|
+
|
127
|
+
first_file = file_cache['/path/to/client/a_ruby_file.rb']
|
128
|
+
first_file.filename.must_equal '/path/to/client/a_ruby_file.rb'
|
129
|
+
first_file.revision.must_equal '16'
|
130
|
+
first_file.last_commit.must_equal '1473075551'
|
131
|
+
first_file.opened?.must_equal false
|
132
|
+
|
133
|
+
second_file = file_cache['/path/to/client/second_ruby_file.rb']
|
134
|
+
second_file.filename.must_equal '/path/to/client/second_ruby_file.rb'
|
135
|
+
second_file.revision.must_equal '12'
|
136
|
+
second_file.last_commit.must_equal '1464601668'
|
137
|
+
second_file.opened?.must_equal true
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'retrieves the number revisions of the ruby files' do
|
142
|
+
Dir.stubs(:getwd).returns('/path/to/client')
|
143
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:`).once.returns(p4_stats)
|
144
|
+
@system.revisions_count('a_ruby_file.rb').must_equal 16
|
145
|
+
@system.revisions_count('second_ruby_file.rb').must_equal 12
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'retrieves the date of the last commit of the ruby files' do
|
149
|
+
Dir.stubs(:getwd).returns('/path/to/client')
|
150
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:`).once.returns(p4_stats)
|
151
|
+
@system.date_of_last_commit('a_ruby_file.rb').must_equal '2016-09-05 11:39:11 +0000'
|
152
|
+
@system.date_of_last_commit('second_ruby_file.rb').must_equal '2016-05-30 09:47:48 +0000'
|
153
|
+
end
|
154
|
+
|
155
|
+
it 'retrieves the information if the ruby file is opened (in the changelist and ready to commit)' do
|
156
|
+
Dir.stubs(:getwd).returns('/path/to/client')
|
157
|
+
RubyCritic::SourceControlSystem::Perforce.stubs(:`).once.returns(p4_stats)
|
158
|
+
@system.revision?.must_equal true
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
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: 3.
|
4
|
+
version: 3.1.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-11-
|
11
|
+
date: 2016-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: virtus
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.3.1.
|
75
|
+
version: 2.3.1.4
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.3.1.
|
82
|
+
version: 2.3.1.4
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: ruby_parser
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -253,6 +253,7 @@ files:
|
|
253
253
|
- Gemfile
|
254
254
|
- LICENSE.txt
|
255
255
|
- README.md
|
256
|
+
- ROADMAP.md
|
256
257
|
- Rakefile
|
257
258
|
- bin/rubycritic
|
258
259
|
- docs/building-own-code-climate.md
|
@@ -279,6 +280,7 @@ files:
|
|
279
280
|
- lib/rubycritic/analysers/smells/flog.rb
|
280
281
|
- lib/rubycritic/analysers/smells/reek.rb
|
281
282
|
- lib/rubycritic/analysers_runner.rb
|
283
|
+
- lib/rubycritic/analysis_summary.rb
|
282
284
|
- lib/rubycritic/browser.rb
|
283
285
|
- lib/rubycritic/cli/application.rb
|
284
286
|
- lib/rubycritic/cli/options.rb
|
@@ -297,15 +299,33 @@ files:
|
|
297
299
|
- lib/rubycritic/core/rating.rb
|
298
300
|
- lib/rubycritic/core/smell.rb
|
299
301
|
- lib/rubycritic/generators/console_report.rb
|
302
|
+
- lib/rubycritic/generators/html/assets/fonts/FontAwesome.otf
|
303
|
+
- lib/rubycritic/generators/html/assets/fonts/Roboto-Medium.ttf
|
304
|
+
- lib/rubycritic/generators/html/assets/fonts/Roboto-Regular.ttf
|
305
|
+
- lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.eot
|
306
|
+
- lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.svg
|
307
|
+
- lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.ttf
|
308
|
+
- lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.woff
|
309
|
+
- lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.woff2
|
310
|
+
- lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.eot
|
311
|
+
- lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.svg
|
312
|
+
- lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.ttf
|
313
|
+
- lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.woff
|
314
|
+
- lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.woff2
|
315
|
+
- lib/rubycritic/generators/html/assets/images/logo.png
|
300
316
|
- lib/rubycritic/generators/html/assets/javascripts/application.js
|
317
|
+
- lib/rubycritic/generators/html/assets/javascripts/bootstrap.min.js
|
301
318
|
- lib/rubycritic/generators/html/assets/javascripts/highcharts.src-4.0.1.js
|
302
|
-
- lib/rubycritic/generators/html/assets/javascripts/jquery
|
303
|
-
- lib/rubycritic/generators/html/assets/javascripts/jquery.
|
304
|
-
- lib/rubycritic/generators/html/assets/javascripts/jquery.scrollTo-1.4.11.js
|
319
|
+
- lib/rubycritic/generators/html/assets/javascripts/jquery.min.js
|
320
|
+
- lib/rubycritic/generators/html/assets/javascripts/jquery.scrollTo.min.js
|
305
321
|
- lib/rubycritic/generators/html/assets/javascripts/jquery.tablesorter.js
|
306
|
-
- lib/rubycritic/generators/html/assets/javascripts/jquery.
|
307
|
-
- lib/rubycritic/generators/html/assets/javascripts/
|
322
|
+
- lib/rubycritic/generators/html/assets/javascripts/jquery.tablesorter.min.js
|
323
|
+
- lib/rubycritic/generators/html/assets/javascripts/jquery.timeago.js
|
324
|
+
- lib/rubycritic/generators/html/assets/javascripts/prettify.js
|
308
325
|
- lib/rubycritic/generators/html/assets/stylesheets/application.css
|
326
|
+
- lib/rubycritic/generators/html/assets/stylesheets/bootstrap.min.css
|
327
|
+
- lib/rubycritic/generators/html/assets/stylesheets/font-awesome.min.css
|
328
|
+
- lib/rubycritic/generators/html/assets/stylesheets/prettify.css
|
309
329
|
- lib/rubycritic/generators/html/assets/stylesheets/prettify.custom_theme.css
|
310
330
|
- lib/rubycritic/generators/html/base.rb
|
311
331
|
- lib/rubycritic/generators/html/code_file.rb
|
@@ -336,6 +356,7 @@ files:
|
|
336
356
|
- lib/rubycritic/source_control_systems/double.rb
|
337
357
|
- lib/rubycritic/source_control_systems/git.rb
|
338
358
|
- lib/rubycritic/source_control_systems/mercurial.rb
|
359
|
+
- lib/rubycritic/source_control_systems/perforce.rb
|
339
360
|
- lib/rubycritic/source_locator.rb
|
340
361
|
- lib/rubycritic/version.rb
|
341
362
|
- rubycritic.gemspec
|
@@ -347,6 +368,7 @@ files:
|
|
347
368
|
- test/lib/rubycritic/analysers/smells/flay_test.rb
|
348
369
|
- test/lib/rubycritic/analysers/smells/flog_test.rb
|
349
370
|
- test/lib/rubycritic/analysers/smells/reek_test.rb
|
371
|
+
- test/lib/rubycritic/analysis_summary_test.rb
|
350
372
|
- test/lib/rubycritic/browser_test.rb
|
351
373
|
- test/lib/rubycritic/commands/status_reporter_test.rb
|
352
374
|
- test/lib/rubycritic/configuration_test.rb
|
@@ -367,6 +389,7 @@ files:
|
|
367
389
|
- test/lib/rubycritic/source_control_systems/interfaces/basic.rb
|
368
390
|
- test/lib/rubycritic/source_control_systems/interfaces/time_travel.rb
|
369
391
|
- test/lib/rubycritic/source_control_systems/mercurial_test.rb
|
392
|
+
- test/lib/rubycritic/source_control_systems/perforce_test.rb
|
370
393
|
- test/lib/rubycritic/source_locator_test.rb
|
371
394
|
- test/lib/rubycritic/version_test.rb
|
372
395
|
- test/samples/empty.rb
|
@@ -419,6 +442,7 @@ test_files:
|
|
419
442
|
- test/lib/rubycritic/analysers/smells/flay_test.rb
|
420
443
|
- test/lib/rubycritic/analysers/smells/flog_test.rb
|
421
444
|
- test/lib/rubycritic/analysers/smells/reek_test.rb
|
445
|
+
- test/lib/rubycritic/analysis_summary_test.rb
|
422
446
|
- test/lib/rubycritic/browser_test.rb
|
423
447
|
- test/lib/rubycritic/commands/status_reporter_test.rb
|
424
448
|
- test/lib/rubycritic/configuration_test.rb
|
@@ -439,6 +463,7 @@ test_files:
|
|
439
463
|
- test/lib/rubycritic/source_control_systems/interfaces/basic.rb
|
440
464
|
- test/lib/rubycritic/source_control_systems/interfaces/time_travel.rb
|
441
465
|
- test/lib/rubycritic/source_control_systems/mercurial_test.rb
|
466
|
+
- test/lib/rubycritic/source_control_systems/perforce_test.rb
|
442
467
|
- test/lib/rubycritic/source_locator_test.rb
|
443
468
|
- test/lib/rubycritic/version_test.rb
|
444
469
|
- test/samples/empty.rb
|