metric_fu 4.1.2 → 4.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/.travis.yml +7 -4
  2. data/.yardopts +5 -0
  3. data/CONTRIBUTING.md +28 -13
  4. data/Gemfile +7 -3
  5. data/HISTORY.md +12 -0
  6. data/README.md +17 -0
  7. data/TODO.md +74 -79
  8. data/lib/metric_fu.rb +8 -0
  9. data/lib/metric_fu/configuration.rb +8 -3
  10. data/lib/metric_fu/core_ext.rb +2 -0
  11. data/lib/metric_fu/core_ext/inflector/inflections.rb +214 -0
  12. data/lib/metric_fu/core_ext/inflector/methods.rb +153 -0
  13. data/lib/metric_fu/core_ext/object.rb +3 -0
  14. data/lib/metric_fu/core_ext/object/blank.rb +106 -0
  15. data/lib/metric_fu/core_ext/object/to_json.rb +12 -0
  16. data/lib/metric_fu/core_ext/string.rb +2 -0
  17. data/lib/metric_fu/core_ext/string/inflections.rb +195 -0
  18. data/lib/metric_fu/initial_requires.rb +0 -8
  19. data/lib/metric_fu/metrics/base_template.rb +28 -1
  20. data/lib/metric_fu/metrics/churn/churn.rb +2 -2
  21. data/lib/metric_fu/metrics/churn/template_awesome/churn.html.erb +8 -6
  22. data/lib/metric_fu/metrics/hotspots/analysis/code_issue.rb +6 -0
  23. data/lib/metric_fu/metrics/hotspots/init.rb +1 -0
  24. data/lib/metric_fu/reporting/templates/awesome/awesome_template.rb +37 -20
  25. data/lib/metric_fu/reporting/templates/awesome/css/bluff.css +15 -0
  26. data/lib/metric_fu/reporting/templates/awesome/css/default.css +0 -48
  27. data/lib/metric_fu/reporting/templates/awesome/css/rcov.css +32 -0
  28. data/lib/metric_fu/reporting/templates/awesome/index.html.erb +4 -32
  29. data/lib/metric_fu/reporting/templates/awesome/layout.html.erb +2 -0
  30. data/lib/metric_fu/version.rb +1 -1
  31. data/metric_fu.gemspec +23 -11
  32. data/spec/cli/helper_spec.rb +38 -28
  33. data/spec/metric_fu/configuration_spec.rb +35 -22
  34. data/spec/metric_fu/metrics/base_template_spec.rb +7 -7
  35. data/spec/metric_fu/metrics/churn/churn_spec.rb +9 -2
  36. data/spec/metric_fu/metrics/flog/flog_spec.rb +57 -55
  37. data/spec/metric_fu/metrics/hotspots/hotspot_analyzer_spec.rb +0 -2
  38. data/spec/run_spec.rb +0 -8
  39. data/spec/support/suite.rb +3 -1
  40. metadata +74 -125
  41. data/home_page/back_all.jpg +0 -0
  42. data/home_page/cc.rb.gif +0 -0
  43. data/home_page/churn.gif +0 -0
  44. data/home_page/cruise_control_1.gif +0 -0
  45. data/home_page/cyclomatic.gif +0 -0
  46. data/home_page/flay.gif +0 -0
  47. data/home_page/flog.gif +0 -0
  48. data/home_page/flog2.gif +0 -0
  49. data/home_page/footer.gif +0 -0
  50. data/home_page/header.jpg +0 -0
  51. data/home_page/hotspot.gif +0 -0
  52. data/home_page/img09.gif +0 -0
  53. data/home_page/index.html +0 -138
  54. data/home_page/rcov.gif +0 -0
  55. data/home_page/reek.gif +0 -0
  56. data/home_page/robots.txt +0 -5
  57. data/home_page/roodi.gif +0 -0
  58. data/home_page/saikuro.gif +0 -0
  59. data/home_page/stats.gif +0 -0
  60. data/home_page/styles.css +0 -245
  61. data/home_page/title.gif +0 -0
  62. data/home_page/title_back.gif +0 -0
  63. data/lib/metric_fu/metrics/cane/template_standard/cane.html.erb +0 -95
  64. data/lib/metric_fu/metrics/churn/template_standard/churn.html.erb +0 -31
  65. data/lib/metric_fu/metrics/flay/template_standard/flay.html.erb +0 -34
  66. data/lib/metric_fu/metrics/flog/template_standard/flog.html.erb +0 -57
  67. data/lib/metric_fu/metrics/hotspots/template_standard/hotspots.html.erb +0 -54
  68. data/lib/metric_fu/metrics/rails_best_practices/template_standard/rails_best_practices.html.erb +0 -29
  69. data/lib/metric_fu/metrics/rcov/template_standard/rcov.html.erb +0 -43
  70. data/lib/metric_fu/metrics/reek/template_standard/reek.html.erb +0 -42
  71. data/lib/metric_fu/metrics/roodi/template_standard/roodi.html.erb +0 -29
  72. data/lib/metric_fu/metrics/saikuro/template_standard/saikuro.html.erb +0 -84
  73. data/lib/metric_fu/metrics/stats/template_standard/stats.html.erb +0 -55
  74. data/lib/metric_fu/reporting/templates/standard/default.css +0 -64
  75. data/lib/metric_fu/reporting/templates/standard/index.html.erb +0 -44
  76. data/lib/metric_fu/reporting/templates/standard/standard_template.rb +0 -26
Binary file
data/home_page/cc.rb.gif DELETED
Binary file
data/home_page/churn.gif DELETED
Binary file
Binary file
Binary file
data/home_page/flay.gif DELETED
Binary file
data/home_page/flog.gif DELETED
Binary file
data/home_page/flog2.gif DELETED
Binary file
data/home_page/footer.gif DELETED
Binary file
data/home_page/header.jpg DELETED
Binary file
Binary file
data/home_page/img09.gif DELETED
Binary file
data/home_page/index.html DELETED
@@ -1,138 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
5
- <title>metric_fu: A Ruby Gem for Easy Metric Report Generation</title>
6
- <meta name="keywords" content="metric_fu rails metrics saikuro flog flay roodi reek cyclomatic complexity rcov coverage gem" />
7
- <meta name="description" content="Ruby Gem for Easy Metric Report Generation" />
8
- <link href="styles.css" rel="stylesheet" type="text/css" />
9
- </head>
10
- <body>
11
- <div id="main">
12
- <!-- header begins -->
13
- <div id="header">
14
-
15
- <div id="logo"><a href="#">metric_fu</a></div>
16
- <div id="buttons">
17
- <ul><li>A Ruby Gem for Easy Metric Report Generation</li></ul>
18
- </div>
19
-
20
- </div>
21
- <!-- header ends -->
22
- <!-- content begins -->
23
- <div id="content">
24
- <div id="right">
25
- <div id="sidebar">
26
- <ul>
27
- <li>
28
- <h2>Links</h2>
29
- <ul>
30
- <li><a href="http://groups.google.com/group/metric_fu">
31
- Google Group
32
- </a>
33
- </li>
34
- <li><a href="http://github.com/metricfu/metric_fu">
35
- SCM
36
- </a>
37
- </li>
38
- <li><a href="http://github.com/metricfu/metric_fu/issues">
39
- Issue Tracker
40
- </a>
41
- </li>
42
- </li>
43
- <li><a href="http://benjaminfleischer.com">
44
- Benjamin Fleischer's page (lead developer)
45
- </a>
46
- </li>
47
- <li><a href="http://jakescruggs.blogspot.com/">
48
- Jake Scruggs' Blog (original lead developer)
49
- </a>
50
- </li>
51
- </ul>
52
- </li>
53
- </ul>
54
- </div>
55
- <!-- end #sidebar -->
56
- </div>
57
- <div id="left">
58
- <h1>About metric_fu</h1>
59
- <div>
60
- <p><br/>
61
- Metric_fu is a set of metric tools that make it easy to generate metrics reports. See <a href="https://github.com/metricfu/metric_fu/tree/master/lib/metric_fu/metrics">the list of metrics the gem includes</a>
62
- It's designed to integrate easily with
63
- <a href="http://cruisecontrolrb.thoughtworks.com/">CruiseControl.rb</a>
64
- by placing files in the Custom Build Artifacts folder.
65
- </p>
66
- <br/>
67
- <p>
68
- <h2>For up to date information</h2>
69
- For the most frequently updated project information see the <a href="https://github.com/metricfu/metric_fu">github project page</a> or follow the gem on <a href="https://rubygems.org/gems/metric_fu">rubygems.org</a>. This page is no longer up to date.
70
-
71
- See the <a href="https://github.com/metricfu/metric_fu/blob/master/HISTORY.md">Change log</a>
72
- </p>
73
- <br>
74
- <h2>Example Output:</h2>
75
- <table>
76
- <tr>
77
- <td><a href="flog.gif"><img src="flog.gif" width="250"></a></td>
78
- <td><a href="flay.gif"><img src="flay.gif" width="250"></a></td>
79
- <tr>
80
- <td><a href="churn.gif"><img src="churn.gif" width="250"></a></td>
81
- <td><a href="saikuro.gif"><img src="saikuro.gif" width="250"></a></td>
82
- </tr>
83
- <tr>
84
- <td><a href="reek.gif"><img src="reek.gif" width="250"></a></td>
85
- <td><a href="roodi.gif"><img src="roodi.gif" width="250"></a></td>
86
- </tr>
87
- <tr>
88
- <td><a href="rcov.gif"><img src="rcov.gif" width="250"></a></td>
89
- <td><a href="stats.gif"><img src="stats.gif" width="250"></a></td>
90
- </tr>
91
- </table>
92
-
93
- <br/>
94
- <p>Metric_fu began its life as a plugin for Rails that generated code metrics reports. As of version 0.7.0, metric_fu is a gem (owing to the excellent work done by Sean Soper) and is hosted on GitHub at <a href="http://github.com/metricfu/metric_fu">http://github.com/metricfu/metric_fu</a>. </p>
95
- <p><br/>
96
- <h2>Questions?</h2>
97
- <p>Use the Google Group: <a href="http://groups.google.com/group/metric_fu">http://groups.google.com/group/metric_fu</a></p>
98
- <br/>
99
- <h2>Thanks</h2>
100
- I'd like to thank the authors of Saikuro, Subversion, Flog, Rcov, CruiseControl.rb, and Rails for creating such excellent open source products. Also many thanks go to
101
- <a href="http://arko.net/">Andre Arko</a>,
102
- <a href="http://deheus.net/petrik">Petrik de Heus</a>,
103
- <a href="http://seansoper.com/">Sean Soper</a>,
104
- <a href="http://www.perilled.com/">Erik St Martin</a>,
105
- <a href="http://gregorowicz.blogspot.com/">Andy Gregorowicz</a>,
106
- <a href="http://github.com/bastien/">Bastien</a>,
107
- <a href="http://schubert.cx/">Michael Schubert</a>,
108
- <a href="http://kseebaldt.blogspot.com/">Kurtis Seebaldt</a>,
109
- <a href="http://www.workingwithrails.com/person/11263-toby-tripp">Toby Tripp</a>,
110
- <a href="http://www.aliaghareza.com">Ali Aghareza</a>,
111
- <a href="http://www.pgrs.net/">Paul Gross</a>, and
112
- <a href="http://chirdeepshetty.net/">Chirdeep Shetty</a>
113
- for their contributions to metric_fu.
114
- </p>
115
- </div>
116
-
117
- </div>
118
-
119
- </div>
120
- </div>
121
- <!-- content ends -->
122
- <!-- footer begins -->
123
- <div id="metamorph2"><div id="footer">
124
- <p>Copyright &copy; 2008. Designed by <a href="http://www.metamorphozis.com/" title="Free Web Templates">Free Web Templates</a></p>
125
- </div></div>
126
- <!-- footer ends -->
127
-
128
- <script type="text/javascript">
129
- var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
130
- document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
131
- </script>
132
- <script type="text/javascript">
133
- var pageTracker = _gat._getTracker("UA-1908573-3");
134
- pageTracker._initData();
135
- pageTracker._trackPageview();
136
- </script>
137
- </body>
138
- </html>
data/home_page/rcov.gif DELETED
Binary file
data/home_page/reek.gif DELETED
Binary file
data/home_page/robots.txt DELETED
@@ -1,5 +0,0 @@
1
- User-agent: *
2
- Disallow: /softwaremap/ # This is an infinite virtual URL space
3
- Disallow: /statcvs/ # This is an infinite virtual URL space
4
- Disallow: /usage/ # This is an infinite virtual URL space
5
- Disallow: /wiki/ # This is an infinite virtual URL space
data/home_page/roodi.gif DELETED
Binary file
Binary file
data/home_page/stats.gif DELETED
Binary file
data/home_page/styles.css DELETED
@@ -1,245 +0,0 @@
1
- /*
2
- Design by Metamorphosis Design
3
- http://www.metamorphozis.com
4
- Released for free under a Creative Commons Attribution 2.5 License
5
- */
6
-
7
- a:link {
8
- color: #3886E0;
9
- }
10
-
11
- a:hover, {
12
- text-decoration: underline;
13
- color: #FF0000;
14
- }
15
-
16
- a:visited {
17
- color: #3886E0;
18
- }
19
-
20
- *
21
- {
22
- border: 0;
23
- margin: 0;
24
- }
25
-
26
- body
27
- {
28
- background: #ffffff url(back_all.jpg) repeat-x top;
29
- font: 12px Tahoma, Arial, Helvetica, sans-serif;
30
- color: #666666;
31
- margin-top: 10px;
32
- }
33
-
34
- #main
35
- {
36
- margin: 0 auto;
37
- width: 912px;
38
- background: url(table_back.jpg) repeat-y;
39
- }
40
-
41
- #header
42
- {
43
- background: url(header.jpg) no-repeat;
44
- width: 912px;
45
- height: 262px;
46
- }
47
-
48
- #logo
49
- {
50
- padding-left: 40px;
51
- text-align: left;
52
- padding-top: 40px;
53
- height: 40px;
54
- }
55
-
56
- #logo a {
57
- text-decoration: none;
58
- text-transform: lowercase;
59
- font-style: italic;
60
- font-size: 16px;
61
- color: #000000;
62
- font-weight: bold;
63
- }
64
-
65
-
66
- #logo H2 a
67
- {
68
- font-size: 10px;
69
- }
70
-
71
- #buttons
72
- {
73
- padding-top: 140px;
74
- height: 40px;
75
- padding-left: 120px;
76
- }
77
-
78
- #buttons li {
79
- display: inline;
80
- display: block;
81
- float: left;
82
- height: 30px;
83
- margin-left: 1px;
84
- text-align: center;
85
- text-decoration: none;
86
- color: #000000;
87
- font-weight: bold;
88
- font-size: 16px;
89
- padding-top: 10px;
90
- }
91
-
92
- #buttons a {
93
- display: block;
94
- float: left;
95
- width: 120px;
96
- height: 30px;
97
- margin-left: 1px;
98
- text-align: center;
99
- text-decoration: none;
100
- color: #000000;
101
- font-weight: bold;
102
- font-size: 16px;
103
- padding-top: 10px;
104
-
105
- }
106
-
107
- #buttons a:hover {
108
- text-decoration: underline;
109
- color: #FF0000;
110
- }
111
-
112
- #content
113
- {
114
- width: 870px;
115
- padding: 15px;
116
- }
117
-
118
- #left
119
- {
120
- width: 580px;
121
- padding: 10px;
122
- }
123
-
124
- #left H1
125
- {
126
- color: #99A067;
127
- margin: 0;
128
- padding: 0;
129
- font-size: 24px;
130
- }
131
- #left H2
132
- {
133
- color: #99A067;
134
- margin: 0;
135
- padding: 0;
136
- font-size: 18px;
137
- padding-top: 10px;
138
- }
139
-
140
- #left a
141
- {
142
- color: #99A067;
143
- }
144
-
145
- #left a:hover, {
146
- text-decoration: none;
147
- color: #FF0000;
148
- }
149
-
150
- #left a:visited {
151
- color: #99A067;
152
- }
153
-
154
- .small
155
- {
156
- margin: 15px;
157
- padding: 5px;
158
- border: 1px solid #99A067
159
- }
160
-
161
- #right
162
- {
163
- float: right;
164
- width: 254px;
165
- }
166
-
167
- #sidebar
168
- {
169
- width: 254px;
170
- }
171
-
172
- #sidebar ul
173
- {
174
- margin: 0;
175
- padding: 0;
176
- list-style: none;
177
- background: url(title_back.gif) no-repeat;
178
- }
179
-
180
- #sidebar li
181
- {
182
- margin-bottom: 15px;
183
-
184
- }
185
-
186
- #sidebar li ul {
187
- padding: 10px;
188
- border-top: none;
189
- }
190
-
191
- #sidebar li li {
192
- margin: 0;
193
- padding: 3px 0;
194
- }
195
-
196
-
197
- #sidebar li h2 {
198
- height: 34px;
199
- margin: 0;
200
- padding: 10px 0 0 20px;
201
- background: #ffffff url(title.gif) no-repeat;
202
- font-size: 18px;
203
- color: #000000;
204
- }
205
-
206
- #sidebar a:link {
207
- text-decoration: none;
208
- }
209
-
210
- #sidebar a:hover {
211
- text-decoration: underline;
212
- }
213
- #sidebar a:visited {
214
- text-decoration: none;
215
- }
216
-
217
- #sidebar li a {
218
- padding-left: 10px;
219
- background: url(img09.gif) no-repeat 1px 5px;
220
- }
221
-
222
-
223
- #footer
224
- {
225
- background: url(footer.gif) repeat-x;
226
- height: 52px;
227
- font-size: 10px;
228
- color: #99A067;
229
- padding-top: 20px;
230
- text-align: center;
231
- border-top: #99A067 solid 5px;
232
- }
233
-
234
- #footer a
235
- {
236
- color: #99A067;
237
- font-size: 10px;
238
- text-decoration: none;
239
- }
240
- .padding
241
- {
242
- padding: 10px;
243
- color:#FF0000;
244
- font-weight: bold;
245
- }
data/home_page/title.gif DELETED
Binary file
Binary file
@@ -1,95 +0,0 @@
1
- <html>
2
- <head>
3
- <title>Cane Results</title>
4
- <style>
5
- <%= inline_css("default.css") %>
6
- </style>
7
- </head>
8
-
9
- <body>
10
- <h1>Cane Results</h1>
11
- <a href="index.html">back to menu</a>
12
- <h2>Total Violations: <%= @cane[:total_violations] %></h2>
13
- <p><a href='https://github.com/square/cane'>Cane</a> reports code quality threshold violations.</p>
14
- <% if @cane[:violations][:abc_complexity] && @cane[:violations][:abc_complexity].size > 0 %>
15
- <h3>Methods exceeding allowed Abc complexity (<%= @cane[:violations][:abc_complexity].size %>)</h3>
16
- <table>
17
- <tr>
18
- <th>File</th>
19
- <th>Method</th>
20
- <th>Complexity</th>
21
- </tr>
22
- <% count = 0 %>
23
- <% @cane[:violations][:abc_complexity].each do |violation| %>
24
- <tr class='<%= cycle("light", "dark", count) %>'>
25
- <td><%=violation[:file]%></td>
26
- <td><%=violation[:method]%></td>
27
- <td><%=violation[:complexity]%></td>
28
- </tr>
29
- <% count += 1 %>
30
- <% end %>
31
- </table>
32
- <% end %>
33
- <% if @cane[:violations][:line_style] && @cane[:violations][:line_style].size > 0 %>
34
- <h3>Lines violating style requirements (<%= @cane[:violations][:line_style].size %>)</h3>
35
- <table>
36
- <tr>
37
- <th>File</th>
38
- <th>Description</th>
39
- </tr>
40
- <% count = 0 %>
41
- <% @cane[:violations][:line_style].each do |violation| %>
42
- <tr class='<%= cycle("light", "dark", count) %>'>
43
- <td><%=violation[:line]%></td>
44
- <td><%=violation[:description]%></td>
45
- </tr>
46
- <% count += 1 %>
47
- <% end %>
48
- </table>
49
- <% end %>
50
- <% if @cane[:violations][:documentation] && @cane[:violations][:documentation].size > 0 %>
51
- <h3>Missing documentation (<%= @cane[:violations][:documentation].size %>)</h3>
52
- <table>
53
- <tr>
54
- <th>Description</th>
55
- </tr>
56
- <% @cane[:violations][:documentation].each do |violation| %>
57
- <tr>
58
- <td><%=violation[:description]%></td>
59
- </tr>
60
- <% end %>
61
- </table>
62
- <% end %>
63
- <% if @cane[:violations][:comment] && @cane[:violations][:comment].size > 0 %>
64
- <h3>Class definitions requiring comments (<%= @cane[:violations][:comment].size %>)</h3>
65
- <table>
66
- <tr>
67
- <th>File</th>
68
- <th>Description</th>
69
- </tr>
70
- <% count = 0 %>
71
- <% @cane[:violations][:comment].each do |violation| %>
72
- <tr class='<%= cycle("light", "dark", count) %>'>
73
- <td><%=violation[:line]%></td>
74
- <td><%=violation[:class_name]%></td>
75
- </tr>
76
- <% count += 1 %>
77
- <% end %>
78
- </table>
79
- <% end %>
80
- <% if @cane[:violations][:others] && @cane[:violations][:others].size > 0 %>
81
- <h3>Others (<%= @cane[:violations][:others].size %>)</h3>
82
- <table>
83
- <tr>
84
- <th>Description</th>
85
- </tr>
86
- <% @cane[:violations][:others].each do |violation| %>
87
- <tr>
88
- <td><%=violation[:description]%></td>
89
- </tr>
90
- <% end %>
91
- </table>
92
- <% end %>
93
- <p>Generated on <%= Time.now.localtime %></p>
94
- </body>
95
- </html>