rubycritic 0.0.5 → 0.0.16
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.
- checksums.yaml +4 -4
- data/.travis.yml +10 -0
- data/README.md +72 -11
- data/bin/rubycritic +2 -0
- data/lib/rubycritic/adapters/complexity/flog.rb +22 -0
- data/lib/rubycritic/adapters/smell/flay.rb +68 -0
- data/lib/rubycritic/adapters/smell/flog.rb +62 -0
- data/lib/rubycritic/adapters/smell/reek.rb +44 -0
- data/lib/rubycritic/analysers/churn.rb +19 -0
- data/lib/rubycritic/analysers/config.reek +8 -0
- data/lib/rubycritic/analysers/flay.rb +15 -0
- data/lib/rubycritic/analysers/flog.rb +1 -2
- data/lib/rubycritic/analysers/stats.rb +31 -0
- data/lib/rubycritic/analysers_runner.rb +15 -14
- data/lib/rubycritic/cli.rb +35 -14
- data/lib/rubycritic/configuration.rb +24 -0
- data/lib/rubycritic/core/analysed_file.rb +50 -0
- data/lib/rubycritic/{location.rb → core/location.rb} +6 -2
- data/lib/rubycritic/core/rating.rb +22 -0
- data/lib/rubycritic/{smell.rb → core/smell.rb} +5 -12
- data/lib/rubycritic/files_initializer.rb +15 -0
- data/lib/rubycritic/orchestrator.rb +23 -0
- data/lib/rubycritic/report_generators/assets/javascripts/application.js +87 -8
- data/lib/rubycritic/report_generators/assets/javascripts/highcharts.src-4.0.1.js +17672 -0
- data/lib/rubycritic/report_generators/assets/javascripts/jquery.floatThead-v1.2.7.js +754 -0
- data/lib/rubycritic/report_generators/assets/javascripts/jquery.scrollTo-1.4.11.js +186 -0
- data/lib/rubycritic/report_generators/assets/javascripts/jquery.tablesorter-2.0.js +1031 -0
- data/lib/rubycritic/report_generators/assets/javascripts/jquery.timeago-v1.4.1.js +214 -0
- data/lib/rubycritic/report_generators/assets/stylesheets/application.css +204 -1
- data/lib/rubycritic/report_generators/assets/stylesheets/prettify.custom_theme.css +1 -4
- data/lib/rubycritic/report_generators/base.rb +49 -0
- data/lib/rubycritic/report_generators/code_file.rb +38 -0
- data/lib/rubycritic/report_generators/code_index.rb +24 -0
- data/lib/rubycritic/report_generators/current_code_file.rb +17 -0
- data/lib/rubycritic/report_generators/line.rb +31 -0
- data/lib/rubycritic/report_generators/overview.rb +25 -0
- data/lib/rubycritic/report_generators/smells_index.rb +24 -0
- data/lib/rubycritic/report_generators/templates/code_file.html.erb +36 -0
- data/lib/rubycritic/report_generators/templates/code_index.html.erb +26 -0
- data/lib/rubycritic/report_generators/templates/layouts/application.html.erb +27 -16
- data/lib/rubycritic/report_generators/templates/overview.html.erb +5 -0
- data/lib/rubycritic/report_generators/templates/smells_index.html.erb +20 -0
- data/lib/rubycritic/report_generators/view_helpers.rb +28 -9
- data/lib/rubycritic/reporters/base.rb +24 -0
- data/lib/rubycritic/reporters/main.rb +52 -0
- data/lib/rubycritic/reporters/mini.rb +30 -0
- data/lib/rubycritic/revision_comparator.rb +21 -28
- data/lib/rubycritic/serializer.rb +32 -0
- data/lib/rubycritic/smells_status_setter.rb +7 -16
- data/lib/rubycritic/source_control_systems/base.rb +60 -0
- data/lib/rubycritic/source_control_systems/double.rb +19 -0
- data/lib/rubycritic/source_control_systems/git.rb +47 -37
- data/lib/rubycritic/source_locator.rb +8 -12
- data/lib/rubycritic/turbulence.rb +17 -0
- data/lib/rubycritic/version.rb +1 -1
- data/lib/rubycritic.rb +2 -27
- data/rubycritic.gemspec +3 -0
- data/test/lib/rubycritic/adapters/complexity/flog_test.rb +18 -0
- data/test/lib/rubycritic/adapters/smell/flay_test.rb +34 -0
- data/test/lib/rubycritic/adapters/smell/flog_test.rb +26 -0
- data/test/lib/rubycritic/adapters/smell/reek_test.rb +35 -0
- data/test/lib/rubycritic/analysers/churn_test.rb +38 -0
- data/test/lib/rubycritic/configuration_test.rb +17 -0
- data/test/lib/rubycritic/core/analysed_file_test.rb +71 -0
- data/test/lib/rubycritic/{location_test.rb → core/location_test.rb} +8 -4
- data/test/lib/rubycritic/core/smell_test.rb +73 -0
- data/test/lib/rubycritic/{smells_array_test.rb → core/smells_array_test.rb} +1 -1
- data/test/lib/rubycritic/smells_status_setter_test.rb +5 -5
- data/test/lib/rubycritic/source_control_systems/source_control_system_test.rb +5 -11
- data/test/lib/rubycritic/source_locator_test.rb +26 -17
- data/test/lib/rubycritic/turbulence_test.rb +17 -0
- data/test/lib/rubycritic/version_test.rb +1 -0
- data/test/samples/flay/smelly.rb +17 -0
- data/test/samples/flog/complex.rb +11 -0
- data/test/samples/flog/smelly.rb +7 -2
- data/test/samples/reek/not_smelly.rb +31 -3
- data/test/test_helper.rb +1 -0
- metadata +97 -32
- data/SPEC.md +0 -58
- data/lib/rubycritic/report_generators/base_generator.rb +0 -42
- data/lib/rubycritic/report_generators/file_generator.rb +0 -42
- data/lib/rubycritic/report_generators/index_generator.rb +0 -28
- data/lib/rubycritic/report_generators/line_generator.rb +0 -27
- data/lib/rubycritic/report_generators/reporter.rb +0 -45
- data/lib/rubycritic/report_generators/templates/file.html.erb +0 -3
- data/lib/rubycritic/report_generators/templates/index.html.erb +0 -14
- data/lib/rubycritic/smell_adapters/flog.rb +0 -41
- data/lib/rubycritic/smell_adapters/reek.rb +0 -35
- data/lib/rubycritic/smells_aggregator.rb +0 -29
- data/lib/rubycritic/smelly_pathnames_serializer.rb +0 -34
- data/lib/rubycritic/source_control_systems/source_control_system.rb +0 -42
- data/test/lib/rubycritic/metric_adapters/flog_adapter_test.rb +0 -25
- data/test/lib/rubycritic/metric_adapters/reek_adapter_test.rb +0 -34
- data/test/lib/rubycritic/smell_test.rb +0 -71
- data/test/lib/rubycritic/smells_aggregator_test.rb +0 -47
- /data/lib/rubycritic/report_generators/assets/javascripts/{prettify.js → prettify-4-Mar-2013.js} +0 -0
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
require "test_helper"
|
|
2
|
-
require "rubycritic/analysers/flog"
|
|
3
|
-
require "rubycritic/smell_adapters/flog"
|
|
4
|
-
|
|
5
|
-
describe Rubycritic::SmellAdapter::Flog do
|
|
6
|
-
before do
|
|
7
|
-
sample_path = "test/samples/flog/smelly.rb"
|
|
8
|
-
flog = Rubycritic::Analyser::Flog.new([sample_path])
|
|
9
|
-
@adapter = Rubycritic::SmellAdapter::Flog.new(flog)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
it "detects smells" do
|
|
13
|
-
@adapter.smells.wont_be_empty
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "has smells with messages" do
|
|
17
|
-
smell = @adapter.smells.first
|
|
18
|
-
smell.message.must_equal "has a complexity of 8"
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "has smells with scores" do
|
|
22
|
-
smell = @adapter.smells.first
|
|
23
|
-
smell.score.must_be_kind_of Numeric
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
require "test_helper"
|
|
2
|
-
require "rubycritic/analysers/reek"
|
|
3
|
-
require "rubycritic/smell_adapters/reek"
|
|
4
|
-
|
|
5
|
-
describe Rubycritic::SmellAdapter::Reek do
|
|
6
|
-
context "when analysing a smelly file" do
|
|
7
|
-
before do
|
|
8
|
-
sample_path = "test/samples/reek/smelly.rb"
|
|
9
|
-
reek = Rubycritic::Analyser::Reek.new([sample_path])
|
|
10
|
-
@adapter = Rubycritic::SmellAdapter::Reek.new(reek)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "detects smells" do
|
|
14
|
-
@adapter.smells.wont_be_empty
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it "has smells with messages" do
|
|
18
|
-
smell = @adapter.smells.first
|
|
19
|
-
smell.message.must_equal "has boolean parameter 'reek'"
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
context "when analysing a file with smells ignored in config.reek" do
|
|
24
|
-
before do
|
|
25
|
-
sample_path = "test/samples/reek/not_smelly.rb"
|
|
26
|
-
reek = Rubycritic::Analyser::Reek.new([sample_path])
|
|
27
|
-
@adapter = Rubycritic::SmellAdapter::Reek.new(reek)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it "does not detect smells" do
|
|
31
|
-
@adapter.smells.must_be_empty
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
require "test_helper"
|
|
2
|
-
require "rubycritic/smell"
|
|
3
|
-
|
|
4
|
-
describe Rubycritic::Smell do
|
|
5
|
-
it "has a context reader" do
|
|
6
|
-
context = "#bar"
|
|
7
|
-
smell = Rubycritic::Smell.new(:context => context)
|
|
8
|
-
smell.context.must_equal context
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
it "has a locations reader" do
|
|
12
|
-
location = Rubycritic::Location.new("./foo", "42")
|
|
13
|
-
smell = Rubycritic::Smell.new(:locations => [location])
|
|
14
|
-
smell.locations.must_equal [location]
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it "has a pathnames reader" do
|
|
18
|
-
path = Pathname.new("./foo")
|
|
19
|
-
location1 = Rubycritic::Location.new("./foo", "42")
|
|
20
|
-
location2 = Rubycritic::Location.new("./foo", "23")
|
|
21
|
-
smell = Rubycritic::Smell.new(:locations => [location1, location2])
|
|
22
|
-
smell.pathnames.must_equal [path]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it "has a message reader" do
|
|
26
|
-
message = "This smells"
|
|
27
|
-
smell = Rubycritic::Smell.new(:message => message)
|
|
28
|
-
smell.message.must_equal message
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "has a score reader" do
|
|
32
|
-
score = 0
|
|
33
|
-
smell = Rubycritic::Smell.new(:score => score)
|
|
34
|
-
smell.score.must_equal score
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "has a type reader" do
|
|
38
|
-
type = :complexity
|
|
39
|
-
smell = Rubycritic::Smell.new(:type => type)
|
|
40
|
-
smell.type.must_equal type
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
describe "#located_in?" do
|
|
44
|
-
it "returns true if the smell has a location that matches the location passed as argument" do
|
|
45
|
-
location = Rubycritic::Location.new("./foo", "42")
|
|
46
|
-
smell = Rubycritic::Smell.new(:locations => [location])
|
|
47
|
-
smell.located_in?(location).must_equal true
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
describe "#has_multiple_locations?" do
|
|
52
|
-
it "returns true if the smell has more than one location" do
|
|
53
|
-
location1 = Rubycritic::Location.new("./foo", "42")
|
|
54
|
-
location2 = Rubycritic::Location.new("./foo", "23")
|
|
55
|
-
smell = Rubycritic::Smell.new(:locations => [location1, location2])
|
|
56
|
-
smell.has_multiple_locations?.must_equal true
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
it "is comparable" do
|
|
61
|
-
attributes = {
|
|
62
|
-
:context => "#bar",
|
|
63
|
-
:message => "This smells",
|
|
64
|
-
:score => 0,
|
|
65
|
-
:type => :complexity
|
|
66
|
-
}
|
|
67
|
-
smell1 = Rubycritic::Smell.new(attributes)
|
|
68
|
-
smell2 = Rubycritic::Smell.new(attributes)
|
|
69
|
-
smell1.must_equal smell2
|
|
70
|
-
end
|
|
71
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
require "test_helper"
|
|
2
|
-
require "rubycritic/smells_aggregator"
|
|
3
|
-
|
|
4
|
-
describe Rubycritic::SmellsAggregator do
|
|
5
|
-
context "when when analysing smelly files" do
|
|
6
|
-
before do
|
|
7
|
-
@location1 = Rubycritic::Location.new("./foo", "42")
|
|
8
|
-
@location2 = Rubycritic::Location.new("./bar", "23")
|
|
9
|
-
@location3 = Rubycritic::Location.new("./bar", "16")
|
|
10
|
-
@smell1 = Rubycritic::Smell.new(:locations => [@location1])
|
|
11
|
-
@smell2 = Rubycritic::Smell.new(:locations => [@location2, @location3])
|
|
12
|
-
@smell_adapters = [stub(:smells => [@smell1]), stub(:smells => [@smell2])]
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
describe "#smells" do
|
|
16
|
-
it "returns the smells found in those files" do
|
|
17
|
-
smells = [@smell2, @smell1]
|
|
18
|
-
Rubycritic::SmellsAggregator.new(@smell_adapters).smells.must_equal smells
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
describe "#smelly_pathnames" do
|
|
23
|
-
it "returns the files where smells were found" do
|
|
24
|
-
smelly_pathnames = {@location1.pathname => [@smell1], @location2.pathname => [@smell2]}
|
|
25
|
-
Rubycritic::SmellsAggregator.new(@smell_adapters).smelly_pathnames.must_equal smelly_pathnames
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
context "when analysing files with no smells" do
|
|
31
|
-
before do
|
|
32
|
-
@smell_adapters = [stub(:smells => [])]
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
describe "#smells" do
|
|
36
|
-
it "returns an empty array" do
|
|
37
|
-
Rubycritic::SmellsAggregator.new(@smell_adapters).smells.must_equal []
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
describe "#smelly_pathnames" do
|
|
42
|
-
it "returns an empty hash" do
|
|
43
|
-
Rubycritic::SmellsAggregator.new(@smell_adapters).smelly_pathnames.must_equal({})
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
/data/lib/rubycritic/report_generators/assets/javascripts/{prettify.js → prettify-4-Mar-2013.js}
RENAMED
|
File without changes
|