metric_fu 4.1.2 → 4.1.3

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 (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>