rferraz-metric_fu 2.1.1

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.
Files changed (120) hide show
  1. data/HISTORY +237 -0
  2. data/MIT-LICENSE +22 -0
  3. data/README +29 -0
  4. data/Rakefile +18 -0
  5. data/TODO +6 -0
  6. data/lib/base/base_template.rb +172 -0
  7. data/lib/base/churn_analyzer.rb +38 -0
  8. data/lib/base/code_issue.rb +97 -0
  9. data/lib/base/configuration.rb +199 -0
  10. data/lib/base/flay_analyzer.rb +50 -0
  11. data/lib/base/flog_analyzer.rb +43 -0
  12. data/lib/base/generator.rb +166 -0
  13. data/lib/base/graph.rb +44 -0
  14. data/lib/base/line_numbers.rb +74 -0
  15. data/lib/base/location.rb +85 -0
  16. data/lib/base/md5_tracker.rb +52 -0
  17. data/lib/base/metric_analyzer.rb +404 -0
  18. data/lib/base/ranking.rb +34 -0
  19. data/lib/base/rcov_analyzer.rb +43 -0
  20. data/lib/base/reek_analyzer.rb +163 -0
  21. data/lib/base/report.rb +108 -0
  22. data/lib/base/roodi_analyzer.rb +37 -0
  23. data/lib/base/saikuro_analyzer.rb +48 -0
  24. data/lib/base/scoring_strategies.rb +29 -0
  25. data/lib/base/stats_analyzer.rb +37 -0
  26. data/lib/base/table.rb +102 -0
  27. data/lib/generators/churn.rb +28 -0
  28. data/lib/generators/flay.rb +31 -0
  29. data/lib/generators/flog.rb +111 -0
  30. data/lib/generators/hotspots.rb +52 -0
  31. data/lib/generators/rails_best_practices.rb +53 -0
  32. data/lib/generators/rcov.rb +122 -0
  33. data/lib/generators/reek.rb +81 -0
  34. data/lib/generators/roodi.rb +35 -0
  35. data/lib/generators/saikuro.rb +256 -0
  36. data/lib/generators/stats.rb +58 -0
  37. data/lib/graphs/engines/bluff.rb +113 -0
  38. data/lib/graphs/engines/gchart.rb +157 -0
  39. data/lib/graphs/flay_grapher.rb +18 -0
  40. data/lib/graphs/flog_grapher.rb +57 -0
  41. data/lib/graphs/grapher.rb +11 -0
  42. data/lib/graphs/rails_best_practices_grapher.rb +19 -0
  43. data/lib/graphs/rcov_grapher.rb +18 -0
  44. data/lib/graphs/reek_grapher.rb +30 -0
  45. data/lib/graphs/roodi_grapher.rb +18 -0
  46. data/lib/graphs/stats_grapher.rb +20 -0
  47. data/lib/metric_fu.rb +40 -0
  48. data/lib/templates/awesome/awesome_template.rb +73 -0
  49. data/lib/templates/awesome/churn.html.erb +58 -0
  50. data/lib/templates/awesome/css/buttons.css +82 -0
  51. data/lib/templates/awesome/css/default.css +91 -0
  52. data/lib/templates/awesome/css/integrity.css +334 -0
  53. data/lib/templates/awesome/css/reset.css +7 -0
  54. data/lib/templates/awesome/css/syntax.css +19 -0
  55. data/lib/templates/awesome/flay.html.erb +34 -0
  56. data/lib/templates/awesome/flog.html.erb +55 -0
  57. data/lib/templates/awesome/hotspots.html.erb +62 -0
  58. data/lib/templates/awesome/index.html.erb +34 -0
  59. data/lib/templates/awesome/layout.html.erb +30 -0
  60. data/lib/templates/awesome/rails_best_practices.html.erb +27 -0
  61. data/lib/templates/awesome/rcov.html.erb +42 -0
  62. data/lib/templates/awesome/reek.html.erb +40 -0
  63. data/lib/templates/awesome/roodi.html.erb +27 -0
  64. data/lib/templates/awesome/saikuro.html.erb +71 -0
  65. data/lib/templates/awesome/stats.html.erb +51 -0
  66. data/lib/templates/javascripts/bluff-min.js +1 -0
  67. data/lib/templates/javascripts/excanvas.js +35 -0
  68. data/lib/templates/javascripts/js-class.js +1 -0
  69. data/lib/templates/standard/churn.html.erb +31 -0
  70. data/lib/templates/standard/default.css +64 -0
  71. data/lib/templates/standard/flay.html.erb +34 -0
  72. data/lib/templates/standard/flog.html.erb +57 -0
  73. data/lib/templates/standard/hotspots.html.erb +54 -0
  74. data/lib/templates/standard/index.html.erb +41 -0
  75. data/lib/templates/standard/rails_best_practices.html.erb +29 -0
  76. data/lib/templates/standard/rcov.html.erb +43 -0
  77. data/lib/templates/standard/reek.html.erb +42 -0
  78. data/lib/templates/standard/roodi.html.erb +29 -0
  79. data/lib/templates/standard/saikuro.html.erb +84 -0
  80. data/lib/templates/standard/standard_template.rb +26 -0
  81. data/lib/templates/standard/stats.html.erb +55 -0
  82. data/spec/base/base_template_spec.rb +177 -0
  83. data/spec/base/configuration_spec.rb +276 -0
  84. data/spec/base/generator_spec.rb +223 -0
  85. data/spec/base/graph_spec.rb +61 -0
  86. data/spec/base/line_numbers_spec.rb +62 -0
  87. data/spec/base/md5_tracker_spec.rb +57 -0
  88. data/spec/base/report_spec.rb +146 -0
  89. data/spec/generators/churn_spec.rb +41 -0
  90. data/spec/generators/flay_spec.rb +105 -0
  91. data/spec/generators/flog_spec.rb +70 -0
  92. data/spec/generators/rails_best_practices_spec.rb +52 -0
  93. data/spec/generators/rcov_spec.rb +180 -0
  94. data/spec/generators/reek_spec.rb +134 -0
  95. data/spec/generators/roodi_spec.rb +24 -0
  96. data/spec/generators/saikuro_spec.rb +74 -0
  97. data/spec/generators/stats_spec.rb +74 -0
  98. data/spec/graphs/engines/bluff_spec.rb +19 -0
  99. data/spec/graphs/engines/gchart_spec.rb +156 -0
  100. data/spec/graphs/flay_grapher_spec.rb +56 -0
  101. data/spec/graphs/flog_grapher_spec.rb +108 -0
  102. data/spec/graphs/rails_best_practices_grapher_spec.rb +61 -0
  103. data/spec/graphs/rcov_grapher_spec.rb +56 -0
  104. data/spec/graphs/reek_grapher_spec.rb +65 -0
  105. data/spec/graphs/roodi_grapher_spec.rb +56 -0
  106. data/spec/graphs/stats_grapher_spec.rb +68 -0
  107. data/spec/resources/line_numbers/foo.rb +33 -0
  108. data/spec/resources/line_numbers/module.rb +11 -0
  109. data/spec/resources/line_numbers/module_surrounds_class.rb +15 -0
  110. data/spec/resources/line_numbers/two_classes.rb +11 -0
  111. data/spec/resources/saikuro/app/controllers/sessions_controller.rb_cyclo.html +10 -0
  112. data/spec/resources/saikuro/app/controllers/users_controller.rb_cyclo.html +16 -0
  113. data/spec/resources/saikuro/index_cyclo.html +155 -0
  114. data/spec/resources/saikuro_sfiles/thing.rb_cyclo.html +11 -0
  115. data/spec/resources/yml/20090630.yml +7922 -0
  116. data/spec/resources/yml/metric_missing.yml +1 -0
  117. data/spec/spec.opts +6 -0
  118. data/spec/spec_helper.rb +7 -0
  119. data/tasks/metric_fu.rake +22 -0
  120. metadata +448 -0
@@ -0,0 +1,61 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe RailsBestPracticesGrapher do
4
+ before :each do
5
+ @stats_grapher = MetricFu::RailsBestPracticesGrapher.new
6
+ MetricFu.configuration
7
+ end
8
+
9
+ it "should respond to rails_best_practices_count and labels" do
10
+ @stats_grapher.should respond_to(:rails_best_practices_count)
11
+ @stats_grapher.should respond_to(:labels)
12
+ end
13
+
14
+ describe "responding to #initialize" do
15
+ it "should initialise rails_best_practices_count and labels" do
16
+ @stats_grapher.rails_best_practices_count.should == []
17
+ @stats_grapher.labels.should == {}
18
+ end
19
+ end
20
+
21
+ describe "responding to #get_metrics" do
22
+ context "when metrics were not generated" do
23
+ before(:each) do
24
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
25
+ @date = "01022003"
26
+ end
27
+
28
+ it "should not push to rails_best_practices_count" do
29
+ @stats_grapher.rails_best_practices_count.should_not_receive(:push)
30
+ @stats_grapher.get_metrics(@metrics, @date)
31
+ end
32
+
33
+ it "should not update labels with the date" do
34
+ @stats_grapher.labels.should_not_receive(:update)
35
+ @stats_grapher.get_metrics(@metrics, @date)
36
+ end
37
+ end
38
+
39
+ context "when metrics have been generated" do
40
+ before(:each) do
41
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
42
+ @date = "01022003"
43
+ end
44
+
45
+ it "should push to rails_best_practices_count" do
46
+ @stats_grapher.rails_best_practices_count.should_receive(:push).with(2)
47
+ @stats_grapher.get_metrics(@metrics, @date)
48
+ end
49
+
50
+ it "should push 0 to rails_best_practices_count when no problems were found" do
51
+ @stats_grapher.rails_best_practices_count.should_receive(:push).with(0)
52
+ @stats_grapher.get_metrics({ :rails_best_practices => {} }, @date)
53
+ end
54
+
55
+ it "should update labels with the date" do
56
+ @stats_grapher.labels.should_receive(:update).with({ 0 => "01022003" })
57
+ @stats_grapher.get_metrics(@metrics, @date)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,56 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe RcovGrapher do
4
+ before :each do
5
+ @rcov_grapher = MetricFu::RcovGrapher.new
6
+ MetricFu.configuration
7
+ end
8
+
9
+ it "should respond to rcov_percent and labels" do
10
+ @rcov_grapher.should respond_to(:rcov_percent)
11
+ @rcov_grapher.should respond_to(:labels)
12
+ end
13
+
14
+ describe "responding to #initialize" do
15
+ it "should initialise rcov_percent and labels" do
16
+ @rcov_grapher.rcov_percent.should == []
17
+ @rcov_grapher.labels.should == {}
18
+ end
19
+ end
20
+
21
+ describe "responding to #get_metrics" do
22
+ context "when metrics were not generated" do
23
+ before(:each) do
24
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
25
+ @date = "1/2"
26
+ end
27
+
28
+ it "should not push to rcov_percent" do
29
+ @rcov_grapher.rcov_percent.should_not_receive(:push)
30
+ @rcov_grapher.get_metrics(@metrics, @date)
31
+ end
32
+
33
+ it "should not update labels with the date" do
34
+ @rcov_grapher.labels.should_not_receive(:update)
35
+ @rcov_grapher.get_metrics(@metrics, @date)
36
+ end
37
+ end
38
+
39
+ context "when metrics have been generated" do
40
+ before(:each) do
41
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
42
+ @date = "1/2"
43
+ end
44
+
45
+ it "should push to rcov_percent" do
46
+ @rcov_grapher.rcov_percent.should_receive(:push).with(49.6)
47
+ @rcov_grapher.get_metrics(@metrics, @date)
48
+ end
49
+
50
+ it "should update labels with the date" do
51
+ @rcov_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
52
+ @rcov_grapher.get_metrics(@metrics, @date)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,65 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe ReekGrapher do
4
+ before :each do
5
+ @reek_grapher = MetricFu::ReekGrapher.new
6
+ MetricFu.configuration
7
+ end
8
+
9
+ it "should respond to reek_count and labels" do
10
+ @reek_grapher.should respond_to(:reek_count)
11
+ @reek_grapher.should respond_to(:labels)
12
+ end
13
+
14
+ describe "responding to #initialize" do
15
+ it "should initialise reek_count and labels" do
16
+ @reek_grapher.reek_count.should == {}
17
+ @reek_grapher.labels.should == {}
18
+ end
19
+ end
20
+
21
+ describe "responding to #get_metrics" do
22
+ context "when metrics were not generated" do
23
+ before(:each) do
24
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
25
+ @date = "1/2"
26
+ end
27
+
28
+ it "should not set a hash of code smells to reek_count" do
29
+ @reek_grapher.get_metrics(@metrics, @date)
30
+ @reek_grapher.reek_count.should == {}
31
+ end
32
+
33
+ it "should not update labels with the date" do
34
+ @reek_grapher.labels.should_not_receive(:update)
35
+ @reek_grapher.get_metrics(@metrics, @date)
36
+ end
37
+ end
38
+
39
+ context "when metrics have been generated" do
40
+ before(:each) do
41
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
42
+ @date = "1/2"
43
+ end
44
+
45
+ it "should set a hash of code smells to reek_count" do
46
+ @reek_grapher.get_metrics(@metrics, @date)
47
+ @reek_grapher.reek_count.should == {
48
+ "Uncommunicative Name" => [27],
49
+ "Feature Envy" => [20],
50
+ "Utility Function" => [15],
51
+ "Long Method" => [26],
52
+ "Nested Iterators" => [12],
53
+ "Control Couple" => [4],
54
+ "Duplication" => [48],
55
+ "Large Class" => [1]
56
+ }
57
+ end
58
+
59
+ it "should update labels with the date" do
60
+ @reek_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
61
+ @reek_grapher.get_metrics(@metrics, @date)
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,56 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe RoodiGrapher do
4
+ before :each do
5
+ @roodi_grapher = MetricFu::RoodiGrapher.new
6
+ MetricFu.configuration
7
+ end
8
+
9
+ it "should respond to roodi_count and labels" do
10
+ @roodi_grapher.should respond_to(:roodi_count)
11
+ @roodi_grapher.should respond_to(:labels)
12
+ end
13
+
14
+ describe "responding to #initialize" do
15
+ it "should initialise roodi_count and labels" do
16
+ @roodi_grapher.roodi_count.should == []
17
+ @roodi_grapher.labels.should == {}
18
+ end
19
+ end
20
+
21
+ describe "responding to #get_metrics" do
22
+ context "when metrics were not generated" do
23
+ before(:each) do
24
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
25
+ @date = "1/2"
26
+ end
27
+
28
+ it "should not push to roodi_count" do
29
+ @roodi_grapher.roodi_count.should_not_receive(:push)
30
+ @roodi_grapher.get_metrics(@metrics, @date)
31
+ end
32
+
33
+ it "should not update labels with the date" do
34
+ @roodi_grapher.labels.should_not_receive(:update)
35
+ @roodi_grapher.get_metrics(@metrics, @date)
36
+ end
37
+ end
38
+
39
+ context "when metrics have been generated" do
40
+ before(:each) do
41
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
42
+ @date = "1/2"
43
+ end
44
+
45
+ it "should push to roodi_count" do
46
+ @roodi_grapher.roodi_count.should_receive(:push).with(13)
47
+ @roodi_grapher.get_metrics(@metrics, @date)
48
+ end
49
+
50
+ it "should update labels with the date" do
51
+ @roodi_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
52
+ @roodi_grapher.get_metrics(@metrics, @date)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,68 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe StatsGrapher do
4
+ before :each do
5
+ @stats_grapher = MetricFu::StatsGrapher.new
6
+ MetricFu.configuration
7
+ end
8
+
9
+ it "should respond to loc_counts and lot_counts and labels" do
10
+ @stats_grapher.should respond_to(:loc_counts)
11
+ @stats_grapher.should respond_to(:lot_counts)
12
+ @stats_grapher.should respond_to(:labels)
13
+ end
14
+
15
+ describe "responding to #initialize" do
16
+ it "should initialise loc_counts and lot_counts and labels" do
17
+ @stats_grapher.loc_counts.should == []
18
+ @stats_grapher.lot_counts.should == []
19
+ @stats_grapher.labels.should == {}
20
+ end
21
+ end
22
+
23
+ describe "responding to #get_metrics" do
24
+ context "when metrics were not generated" do
25
+ before(:each) do
26
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
27
+ @date = "01022003"
28
+ end
29
+
30
+ it "should not push to loc_counts" do
31
+ @stats_grapher.loc_counts.should_not_receive(:push)
32
+ @stats_grapher.get_metrics(@metrics, @date)
33
+ end
34
+
35
+ it "should not push to lot_counts" do
36
+ @stats_grapher.lot_counts.should_not_receive(:push)
37
+ @stats_grapher.get_metrics(@metrics, @date)
38
+ end
39
+
40
+ it "should not update labels with the date" do
41
+ @stats_grapher.labels.should_not_receive(:update)
42
+ @stats_grapher.get_metrics(@metrics, @date)
43
+ end
44
+ end
45
+
46
+ context "when metrics have been generated" do
47
+ before(:each) do
48
+ @metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
49
+ @date = "01022003"
50
+ end
51
+
52
+ it "should push to loc_counts" do
53
+ @stats_grapher.loc_counts.should_receive(:push).with(15935)
54
+ @stats_grapher.get_metrics(@metrics, @date)
55
+ end
56
+
57
+ it "should push to lot_counts" do
58
+ @stats_grapher.lot_counts.should_receive(:push).with(7438)
59
+ @stats_grapher.get_metrics(@metrics, @date)
60
+ end
61
+
62
+ it "should update labels with the date" do
63
+ @stats_grapher.labels.should_receive(:update).with({ 0 => "01022003" })
64
+ @stats_grapher.get_metrics(@metrics, @date)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,33 @@
1
+ class Foo
2
+
3
+ def self.awesome
4
+ 1 + 1
5
+ end
6
+
7
+ def what
8
+ 12
9
+ end
10
+
11
+ def hello
12
+ puts "Hi There"
13
+ end
14
+
15
+
16
+ def awesome
17
+ 3+4
18
+ end
19
+
20
+ class << self
21
+ def neat
22
+ "23 skido"
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def whoop
29
+ "w00t"
30
+ end
31
+ end
32
+
33
+ #comment
@@ -0,0 +1,11 @@
1
+ module KickAss
2
+
3
+ def get_beat_up?
4
+ [1,2,3].inject {|m,o| m = m + o}
5
+ true
6
+ end
7
+
8
+ def fight
9
+ "poorly"
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module StuffModule
2
+
3
+ class ThingClass
4
+
5
+ def do_it
6
+ "do it"
7
+ end
8
+
9
+ end
10
+
11
+ def blah
12
+ "blah blah"
13
+ end
14
+
15
+ end
@@ -0,0 +1,11 @@
1
+ class Foo
2
+ def stuff
3
+ 5
4
+ end
5
+ end
6
+
7
+ class Bar
8
+ def stuff
9
+ 1
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ -- START --
2
+ Type:Global Name: Complexity:0 Lines:1
3
+ -- END --
4
+ -- START SessionsController --
5
+ Type:Class Name:SessionsController Complexity:6 Lines:40
6
+ Type:Def Name:new Complexity:2 Lines:2
7
+ Type:Def Name:create Complexity:2 Lines:19
8
+ Type:Def Name:destroy Complexity:1 Lines:4
9
+ Type:Def Name:note_failed_signin Complexity:1 Lines:3
10
+ -- END SessionsController --
@@ -0,0 +1,16 @@
1
+ -- START UsersController --
2
+ Type:Class Name:UsersController Complexity:25 Lines:111
3
+ Type:Def Name:signup Complexity:1 Lines:3
4
+ Type:Def Name:new Complexity:1 Lines:2
5
+ Type:Def Name:edit Complexity:1 Lines:3
6
+ Type:Def Name:update Complexity:2 Lines:8
7
+ Type:Def Name:index Complexity:1 Lines:2
8
+ Type:Def Name:create Complexity:4 Lines:15
9
+ Type:Def Name:thank_you Complexity:2 Lines:10
10
+ Type:Def Name:destroy Complexity:1 Lines:3
11
+ Type:Def Name:add_primary_site Complexity:1 Lines:4
12
+ Type:Def Name:users_have_changed Complexity:3 Lines:8
13
+ Type:Def Name:after_create_page Complexity:2 Lines:6
14
+ Type:Def Name:sanitize_params Complexity:3 Lines:3
15
+ Type:Def Name:authorize_user Complexity:3 Lines:5
16
+ -- END UsersController --
@@ -0,0 +1,155 @@
1
+ <html><head><title>Index for cyclomatic complexity</title></head>
2
+ <style>
3
+ body {
4
+ margin: 20px;
5
+ padding: 0;
6
+ font-size: 12px;
7
+ font-family: bitstream vera sans, verdana, arial, sans serif;
8
+ background-color: #efefef;
9
+ }
10
+
11
+ table {
12
+ border-collapse: collapse;
13
+ /*border-spacing: 0;*/
14
+ border: 1px solid #666;
15
+ background-color: #fff;
16
+ margin-bottom: 20px;
17
+ }
18
+
19
+ table, th, th+th, td, td+td {
20
+ border: 1px solid #ccc;
21
+ }
22
+
23
+ table th {
24
+ font-size: 12px;
25
+ color: #fc0;
26
+ padding: 4px 0;
27
+ background-color: #336;
28
+ }
29
+
30
+ th, td {
31
+ padding: 4px 10px;
32
+ }
33
+
34
+ td {
35
+ font-size: 13px;
36
+ }
37
+
38
+ .class_name {
39
+ font-size: 17px;
40
+ margin: 20px 0 0;
41
+ }
42
+
43
+ .class_complexity {
44
+ margin: 0 auto;
45
+ }
46
+
47
+ .class_complexity>.class_complexity {
48
+ margin: 0;
49
+ }
50
+
51
+ .class_total_complexity, .class_total_lines, .start_token_count, .file_count {
52
+ font-size: 13px;
53
+ font-weight: bold;
54
+ }
55
+
56
+ .class_total_complexity, .class_total_lines {
57
+ color: #c00;
58
+ }
59
+
60
+ .start_token_count, .file_count {
61
+ color: #333;
62
+ }
63
+
64
+ .warning {
65
+ background-color: yellow;
66
+ }
67
+
68
+ .error {
69
+ background-color: #f00;
70
+ }
71
+ </style>
72
+
73
+ <body>
74
+ <h1>Index for cyclomatic complexity</h1>
75
+ <h2 class="class_name">Errors and Warnings</h2>
76
+ <table width="100%" border="1">
77
+ <tr><th>Class</th><th>Method</th><th>Complexity</th></tr>
78
+
79
+ <tr><td><a href="./app/controllers/activity_reports_controller.rb_cyclo.html">ActivityReportsController</a></td><td>authorize_user</td>
80
+ <td class="warning">6</td></tr>
81
+ <tr><td><a href="./app/controllers/primary_sites_controller.rb_cyclo.html">PrimarySitesController</a></td><td>create</td>
82
+ <td class="warning">5</td></tr>
83
+ <tr><td><a href="./app/controllers/primary_sites_controller.rb_cyclo.html">PrimarySitesController</a></td><td>save_link_targets</td>
84
+ <td class="warning">5</td></tr>
85
+ <tr><td><a href="./app/models/link_target.rb_cyclo.html">LinkTarget</a></td><td>update_backlink_status</td>
86
+ <td class="warning">5</td></tr>
87
+ </table>
88
+ <hr/>
89
+ <h2 class="class_name">Analyzed Files</h2>
90
+ <ul>
91
+ <li>
92
+ <p class="file_name"><a href="./app/models/user.rb_cyclo.html">app/models/user.rb</a>
93
+ </li>
94
+ <li>
95
+ <p class="file_name"><a href="./app/models/subscriber.rb_cyclo.html">app/models/subscriber.rb</a>
96
+ </li>
97
+ <li>
98
+ <p class="file_name"><a href="./app/models/primary_site.rb_cyclo.html">app/models/primary_site.rb</a>
99
+ </li>
100
+ <li>
101
+ <p class="file_name"><a href="./app/models/link_target.rb_cyclo.html">app/models/link_target.rb</a>
102
+ </li>
103
+ <li>
104
+ <p class="file_name"><a href="./app/models/comparison_site.rb_cyclo.html">app/models/comparison_site.rb</a>
105
+ </li>
106
+ <li>
107
+ <p class="file_name"><a href="./app/models/backlink_crawl_status.rb_cyclo.html">app/models/backlink_crawl_status.rb</a>
108
+ </li>
109
+ <li>
110
+ <p class="file_name"><a href="./app/models/backlink_crawl_notifier.rb_cyclo.html">app/models/backlink_crawl_notifier.rb</a>
111
+ </li>
112
+ <li>
113
+ <p class="file_name"><a href="./app/models/activity_report_measure.rb_cyclo.html">app/models/activity_report_measure.rb</a>
114
+ </li>
115
+ <li>
116
+ <p class="file_name"><a href="./app/models/activity_report.rb_cyclo.html">app/models/activity_report.rb</a>
117
+ </li>
118
+ <li>
119
+ <p class="file_name"><a href="./app/helpers/users_helper.rb_cyclo.html">app/helpers/users_helper.rb</a>
120
+ </li>
121
+ <li>
122
+ <p class="file_name"><a href="./app/helpers/sessions_helper.rb_cyclo.html">app/helpers/sessions_helper.rb</a>
123
+ </li>
124
+ <li>
125
+ <p class="file_name"><a href="./app/helpers/primary_sites_helper.rb_cyclo.html">app/helpers/primary_sites_helper.rb</a>
126
+ </li>
127
+ <li>
128
+ <p class="file_name"><a href="./app/helpers/link_targets_helper.rb_cyclo.html">app/helpers/link_targets_helper.rb</a>
129
+ </li>
130
+ <li>
131
+ <p class="file_name"><a href="./app/helpers/application_helper.rb_cyclo.html">app/helpers/application_helper.rb</a>
132
+ </li>
133
+ <li>
134
+ <p class="file_name"><a href="./app/controllers/users_controller.rb_cyclo.html">app/controllers/users_controller.rb</a>
135
+ </li>
136
+ <li>
137
+ <p class="file_name"><a href="./app/controllers/sessions_controller.rb_cyclo.html">app/controllers/sessions_controller.rb</a>
138
+ </li>
139
+ <li>
140
+ <p class="file_name"><a href="./app/controllers/primary_sites_controller.rb_cyclo.html">app/controllers/primary_sites_controller.rb</a>
141
+ </li>
142
+ <li>
143
+ <p class="file_name"><a href="./app/controllers/link_targets_controller.rb_cyclo.html">app/controllers/link_targets_controller.rb</a>
144
+ </li>
145
+ <li>
146
+ <p class="file_name"><a href="./app/controllers/bookmarklet_integration_controller.rb_cyclo.html">app/controllers/bookmarklet_integration_controller.rb</a>
147
+ </li>
148
+ <li>
149
+ <p class="file_name"><a href="./app/controllers/application.rb_cyclo.html">app/controllers/application.rb</a>
150
+ </li>
151
+ <li>
152
+ <p class="file_name"><a href="./app/controllers/activity_reports_controller.rb_cyclo.html">app/controllers/activity_reports_controller.rb</a>
153
+ </li>
154
+ </ul>
155
+ </body></html>
@@ -0,0 +1,11 @@
1
+ -- START Mod --
2
+ Type:Module Name:Mod Complexity:2 Lines:7
3
+ Type:Def Name:self.included Complexity:2 Lines:5
4
+ -- START --
5
+ Type:Class Name: Complexity:0 Lines:1
6
+ -- END --
7
+ Type:Def Name:update Complexity:1 Lines:1
8
+ -- END Mod --
9
+ -- START Thing --
10
+ Type:Class Name:Thing Complexity:0 Lines:2
11
+ -- END Thing --