ninjs 0.10.2 → 0.11.0

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 (69) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +64 -0
  3. data/Rakefile +4 -1
  4. data/VERSION +1 -1
  5. data/bin/ninjs +14 -5
  6. data/lib/ninjs.rb +0 -3
  7. data/lib/ninjs/command.rb +67 -110
  8. data/lib/ninjs/configuration.rb +33 -39
  9. data/lib/ninjs/project.rb +14 -31
  10. data/ninjs.conf +7 -0
  11. data/ninjs.gemspec +63 -5
  12. data/repository/jquery/1.5.js +16 -0
  13. data/repository/jquery/latest.js +1 -1
  14. data/repository/jquery/mobile/1.0a3.js +123 -0
  15. data/repository/jquery/mobile/1.0a3/assets/css/jquery.mobile.css +1652 -0
  16. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/ajax-loader.png +0 -0
  17. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/form-check-off.png +0 -0
  18. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/form-check-on.png +0 -0
  19. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/form-radio-off.png +0 -0
  20. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/form-radio-on.png +0 -0
  21. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/icon-search-black.png +0 -0
  22. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/icons-18-black.png +0 -0
  23. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/icons-18-white.png +0 -0
  24. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/icons-36-black.png +0 -0
  25. data/repository/jquery/mobile/1.0a3/assets/images/jquerymobile/icons-36-white.png +0 -0
  26. data/repository/jquery/mobile/latest.js +1 -0
  27. data/spec/fixtures/global.js +7 -0
  28. data/spec/fixtures/global.module.js +7 -0
  29. data/spec/fixtures/myapplication.js +576 -0
  30. data/spec/fixtures/nin.js +573 -0
  31. data/spec/fixtures/ninjs.conf +6 -0
  32. data/spec/fixtures/test.elements.js +4 -0
  33. data/spec/fixtures/test.js +15 -0
  34. data/spec/fixtures/test.model.js +3 -0
  35. data/spec/fixtures/test.module.js +10 -0
  36. data/spec/fixtures/updated.myapplication.js +27 -0
  37. data/spec/fixtures/utilities.js +162 -0
  38. data/spec/ninjs_spec.rb +257 -0
  39. data/spec/spec_helper.rb +2 -1
  40. data/tmp/ff9e83aa019b712b90200b8d1b8fa0c7e14576af.json +1 -0
  41. data/tmp/metric_fu/_data/20110305.yml +1548 -0
  42. data/tmp/metric_fu/output/bluff-min.js +1 -0
  43. data/tmp/metric_fu/output/churn.html +692 -0
  44. data/tmp/metric_fu/output/excanvas.js +35 -0
  45. data/tmp/metric_fu/output/flay.html +566 -0
  46. data/tmp/metric_fu/output/flay.js +11 -0
  47. data/tmp/metric_fu/output/flog.html +2392 -0
  48. data/tmp/metric_fu/output/flog.js +12 -0
  49. data/tmp/metric_fu/output/hotspots.html +3607 -0
  50. data/tmp/metric_fu/output/index.html +572 -0
  51. data/tmp/metric_fu/output/js-class.js +1 -0
  52. data/tmp/metric_fu/output/lib_ninjs.rb.html +49 -0
  53. data/tmp/metric_fu/output/lib_ninjs_command.rb.html +137 -0
  54. data/tmp/metric_fu/output/lib_ninjs_configuration.rb.html +107 -0
  55. data/tmp/metric_fu/output/lib_ninjs_dependencies.rb.html +34 -0
  56. data/tmp/metric_fu/output/lib_ninjs_helpers.rb.html +34 -0
  57. data/tmp/metric_fu/output/lib_ninjs_manifest.rb.html +27 -0
  58. data/tmp/metric_fu/output/lib_ninjs_project.rb.html +236 -0
  59. data/tmp/metric_fu/output/rails_best_practices.js +11 -0
  60. data/tmp/metric_fu/output/rcov.html +566 -0
  61. data/tmp/metric_fu/output/rcov.js +11 -0
  62. data/tmp/metric_fu/output/reek.html +1294 -0
  63. data/tmp/metric_fu/output/reek.js +20 -0
  64. data/tmp/metric_fu/output/roodi.html +599 -0
  65. data/tmp/metric_fu/output/roodi.js +11 -0
  66. data/tmp/metric_fu/report.yml +1548 -0
  67. data/tmp/metric_fu/scratch/rcov/rcov.txt +1 -0
  68. metadata +94 -27
  69. data/spec/test_spec.rb +0 -5
@@ -0,0 +1,11 @@
1
+ var g = new Bluff.Line('graph', "1000x600");
2
+ g.theme_37signals();
3
+ g.tooltips = true;
4
+ g.title_font_size = "24px"
5
+ g.legend_font_size = "12px"
6
+ g.marker_font_size = "10px"
7
+
8
+ g.title = 'Rcov: code coverage';
9
+ g.data('rcov', [0.0]);
10
+ g.labels = {"0":"3/5"};
11
+ g.draw();
@@ -0,0 +1,1294 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
5
+ <meta content='en' http-equiv='Content-Language' />
6
+ <title>metrics</title>
7
+ <style>
8
+ /*
9
+ Copyright (c) 2008, Yahoo! Inc. All rights reserved.
10
+ Code licensed under the BSD License:
11
+ http://developer.yahoo.net/yui/license.txt
12
+ version: 2.5.2
13
+ */
14
+ html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;font-variant:normal;}sup {vertical-align:text-top;}sub {vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
15
+
16
+ /* --------------------------------------------------------------
17
+
18
+ buttons.css
19
+ * Gives you some great CSS-only buttons.
20
+
21
+ Created by Kevin Hale [particletree.com]
22
+ * particletree.com/features/rediscovering-the-button-element
23
+
24
+ See Readme.txt in this folder for instructions.
25
+
26
+ -------------------------------------------------------------- */
27
+
28
+ button {
29
+ display:block;
30
+ float:left;
31
+ margin:0 0.583em 0.667em 0;
32
+ padding:5px 10px 5px 7px; /* Links */
33
+
34
+ border:1px solid #dedede;
35
+ border-top:1px solid #eee;
36
+ border-left:1px solid #eee;
37
+
38
+ background-color:#f5f5f5;
39
+ font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
40
+ font-size:100%;
41
+ line-height:130%;
42
+ text-decoration:none;
43
+ font-weight:bold;
44
+ color:#565656;
45
+ cursor:pointer;
46
+ }
47
+ button {
48
+ width:auto;
49
+ overflow:visible;
50
+ padding:4px 10px 3px 7px; /* IE6 */
51
+ }
52
+ button[type] {
53
+ padding:4px 10px 4px 7px; /* Firefox */
54
+ line-height:17px; /* Safari */
55
+ }
56
+ *:first-child+html button[type] {
57
+ padding:4px 10px 3px 7px; /* IE7 */
58
+ }
59
+ button img {
60
+ margin:0 3px -3px 0 !important;
61
+ padding:0;
62
+ border:none;
63
+ width:16px;
64
+ height:16px;
65
+ float:none;
66
+ }
67
+
68
+
69
+ /* Button colors
70
+ -------------------------------------------------------------- */
71
+
72
+ /* Standard */
73
+ button:hover {
74
+ background-color:#dff4ff;
75
+ border:1px solid #c2e1ef;
76
+ color:#336699;
77
+ }
78
+
79
+ /* Positive */
80
+ body .positive {
81
+ color:#529214;
82
+ }
83
+ button.positive:hover {
84
+ background-color:#E6EFC2;
85
+ border:1px solid #C6D880;
86
+ color:#529214;
87
+ }
88
+
89
+ /* Negative */
90
+ body .negative {
91
+ color:#d12f19;
92
+ }
93
+ button.negative:hover {
94
+ background:#fbe3e4;
95
+ border:1px solid #fbc2c4;
96
+ color:#d12f19;
97
+ }
98
+
99
+ html {
100
+ background-color: #e0e0e0; }
101
+
102
+ body {
103
+ font-size: 100%;
104
+ font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
105
+ color: #333333; }
106
+
107
+ a {
108
+ color: #ed1556;
109
+ text-decoration: none; }
110
+ a:hover {
111
+ color: #ffffff;
112
+ background-color: #ed1556; }
113
+
114
+ #header, #content, #footer {
115
+ margin: 0 auto;
116
+ background: #eeeeee;
117
+ padding: 0 2em;
118
+ z-index: 0;
119
+ position: relative;
120
+ font-size: 1em; }
121
+
122
+ #header {
123
+ background: #ffffff; }
124
+ #header h1 {
125
+ font-weight: bold;
126
+ font-size: 1.5em; }
127
+ #header address.watermark {
128
+ position: absolute;
129
+ font-weight: bold;
130
+ right: 3em;
131
+ top: 0;
132
+ font-size: .75em;
133
+ color: #cccccc; }
134
+ #header address.watermark a {
135
+ color: #cccccc;
136
+ font-weight: bold;
137
+ font-size: 2em; }
138
+ #header address.watermark a:hover {
139
+ background: transparent;
140
+ color: #aaaaaa; }
141
+
142
+ #content {
143
+ padding-top: 1em;
144
+ padding-bottom: 2em; }
145
+ #content strong {
146
+ font-weight: bold; }
147
+ #content em {
148
+ font-style: italic; }
149
+ #content h1, #content h2, #content h3, #content h4, #content h5, #content h6 {
150
+ color: #4e4e4e; }
151
+ #content h1 {
152
+ font-size: 2em;
153
+ font-weight: bold;
154
+ margin-bottom: .75em;
155
+ padding: .25em 0;
156
+ line-height: 1.2;
157
+ border-bottom: 1px solid #c0c0c0; }
158
+ #content h2 {
159
+ font-weight: bold;
160
+ font-size: 1.5em;
161
+ margin: 1em 0 .2em; }
162
+ #content h3 {
163
+ font-weight: bold;
164
+ font-size: 1.25em;
165
+ margin: .25em 0; }
166
+ #content h4, #content h5, #content h6 {
167
+ font-weight: bold;
168
+ margin-top: .5em; }
169
+ #content code, #content pre, #content textarea, #content input {
170
+ font-family: Monaco, Deja Vu Sans Mono, Inconsolata, Consolas, monospace; }
171
+ #content form p {
172
+ margin-top: 1em;
173
+ position: relative; }
174
+ #content form p.checkbox label {
175
+ margin-top: 0 !important; }
176
+ #content form input.text, #content form textarea {
177
+ width: 30em;
178
+ padding: .2em .4em;
179
+ color: #4e4e4e; }
180
+ #content form input.text {
181
+ height: 1.4em; }
182
+ #content form label {
183
+ float: left;
184
+ display: block;
185
+ margin-top: .5em;
186
+ width: 8em;
187
+ margin-right: .75em; }
188
+ #content form .with_errors label {
189
+ background: red;
190
+ color: white;
191
+ position: relative;
192
+ top: -.7em; }
193
+ #content form .with_errors.required label {
194
+ position: static;
195
+ margin-right: .25em;
196
+ padding: 0 .2em; }
197
+ #content form .with_errors input, #content form .with_errors textarea {
198
+ border: 2px solid #f22;
199
+ background: #fee;
200
+ color: #222222; }
201
+ #content form .required label {
202
+ float: none;
203
+ display: block;
204
+ width: auto;
205
+ position: relative;
206
+ font-weight: bold;
207
+ margin-top: 1em;
208
+ text-indent: -.65em; }
209
+ #content form .required label:before {
210
+ content: "* ";
211
+ color: #ed1556; }
212
+ #content form .required input.text {
213
+ width: 25.6em;
214
+ font-size: 24px;
215
+ font-weight: bold; }
216
+ #content form .normal {
217
+ margin-top: 2em; }
218
+ #content form h2.notifier label {
219
+ float: none;
220
+ width: auto;
221
+ margin-right: 0; }
222
+ #content form h2.notifier label .warning {
223
+ font-size: .5em;
224
+ font-weight: normal;
225
+ color: #999999; }
226
+ #content form fieldset {
227
+ padding-bottom: 1em;
228
+ margin-left: 1.35em;
229
+ border-bottom: 1px solid #c0c0c0;
230
+ margin-bottom: 1em; }
231
+ #content form fieldset h3 {
232
+ margin-top: 1em;
233
+ margin-bottom: 0; }
234
+ #content form fieldset p.normal {
235
+ margin-top: 1em; }
236
+ #content form fieldset p label {
237
+ width: 6.7em; }
238
+ #content form p.submit {
239
+ margin-top: 2em; }
240
+ #content form p.submit:after {
241
+ display: block;
242
+ clear: both;
243
+ float: none;
244
+ content: ".";
245
+ text-indent: -9999em;
246
+ text-align: left; }
247
+ #content form p.submit.destroy button, #content form p.submit.manual-build button {
248
+ float: none;
249
+ display: inline; }
250
+ #content form p.submit.manual-build button {
251
+ margin-right: 0; }
252
+ #content #build form, #content #last_build form {
253
+ font-size: .75em; }
254
+ #content #build form p.submit, #content #last_build form p.submit {
255
+ margin: 0;
256
+ padding: 0;
257
+ position: absolute;
258
+ right: .5em;
259
+ top: 1.25em; }
260
+ #content .blank_slate p, #content .error p {
261
+ position: relative;
262
+ top: .3em; }
263
+ #content .blank_slate h1, #content .error h1 {
264
+ border-width: 0;
265
+ margin: 0;
266
+ padding: 0; }
267
+ #content .blank_slate h1 button, #content .error h1 button {
268
+ float: none;
269
+ border: 0 none;
270
+ background: transparent;
271
+ display: inline;
272
+ color: #ed1556;
273
+ padding: 0.25em 0;
274
+ margin: 0; }
275
+ #content .blank_slate h1 button:hover, #content .error h1 button:hover {
276
+ background: #ed1556;
277
+ color: #ffffff; }
278
+ #content .error dt {
279
+ margin-top: 1.4em;
280
+ margin-bottom: .3em;
281
+ font-size: 1.75em;
282
+ font-family: Georgia, Times New Roman, serif; }
283
+ #content .error dd {
284
+ line-height: 1.4; }
285
+ #content .error .backtrace {
286
+ margin: 1em 0;
287
+ overflow: scroll;
288
+ height: 30em;
289
+ border: 1px solid #c0c0c0;
290
+ line-height: 1.6; }
291
+ #content #projects {
292
+ margin: 1em 0 2em;
293
+ border-top: 1px solid #c0c0c0; }
294
+ #content #projects li {
295
+ position: relative;
296
+ border-bottom: 1px solid #c0c0c0; }
297
+ #content #projects li.odd {
298
+ background: #e6e6e6; }
299
+ #content #projects li.building {
300
+ background: transparent url(/spinner.gif) no-repeat scroll right; }
301
+ #content #projects li a {
302
+ font-size: 2em;
303
+ padding: .25em;
304
+ line-height: 1.2;
305
+ font-weight: bold;
306
+ display: block; }
307
+ #content #projects li a.success {
308
+ color: #337022; }
309
+ #content #projects li a.failed {
310
+ color: #ff1100; }
311
+ #content #projects li .meta {
312
+ position: absolute;
313
+ right: .6em;
314
+ top: 1.5em;
315
+ font-size: 0.8em;
316
+ color: #999999;
317
+ text-align: right; }
318
+ #content #projects li.building .meta {
319
+ right: 1.6em; }
320
+ #content #projects li.success .meta {
321
+ color: #337022; }
322
+ #content #projects li.failed .meta {
323
+ color: #ff1100; }
324
+ #content #previous_builds li a {
325
+ display: block;
326
+ padding: .25em;
327
+ margin-bottom: .25em;
328
+ border-width: 1px;
329
+ border-style: solid; }
330
+ #content #previous_builds li a strong {
331
+ font-size: 1.3em; }
332
+ #content #previous_builds li a .attribution {
333
+ font-size: .9em; }
334
+ #content #projects li.success a, #content #previous_builds li.success a {
335
+ background-color: #bbf8aa;
336
+ border-color: #99d688;
337
+ color: #337022; }
338
+ #content #projects li.success a .attribution, #content #previous_builds li.success a .attribution {
339
+ color: #77b466; }
340
+ #content #projects li.success a:hover, #content #previous_builds li.success a:hover {
341
+ background-color: #ddffcc; }
342
+ #content #projects li.failed a, #content #previous_builds li.failed a {
343
+ background-color: #ffbbaa;
344
+ border-color: #dd9988;
345
+ color: #ff1100; }
346
+ #content #projects li.failed a .attribution, #content #previous_builds li.failed a .attribution {
347
+ color: #bb7766; }
348
+ #content #projects li.failed a:hover, #content #previous_builds li.failed a:hover {
349
+ background-color: #ffddcc; }
350
+ #content #build, #content #last_build {
351
+ position: relative; }
352
+ #content #build h1, #content #build blockquote, #content #last_build h1, #content #last_build blockquote {
353
+ border-width: 0 1px;
354
+ border-style: solid; }
355
+ #content #build h1, #content #last_build h1 {
356
+ border-top-width: 1px; }
357
+ #content #build blockquote, #content #last_build blockquote {
358
+ bottom-bottom-width: 1px;
359
+ line-height: 1.4; }
360
+ #content #build.success h1, #content #build.success blockquote, #content #last_build.success h1, #content #last_build.success blockquote {
361
+ background-color: #bbf8aa;
362
+ border-color: #99d688 #ccffbb #ccffbb #99d688; }
363
+ #content #build.success h1, #content #last_build.success h1 {
364
+ color: #337022; }
365
+ #content #build.success .meta, #content #last_build.success .meta {
366
+ color: #77b466; }
367
+ #content #build.failed h1, #content #build.failed blockquote, #content #last_build.failed h1, #content #last_build.failed blockquote {
368
+ background-color: #ffbbaa;
369
+ border-color: #dd9988 #ffccbb #ffccbb #dd9988; }
370
+ #content #build.failed h1, #content #last_build.failed h1 {
371
+ color: #ff1100; }
372
+ #content #build.failed .meta, #content #last_build.failed .meta {
373
+ color: #bb7766; }
374
+ #content #build h1, #content #last_build h1 {
375
+ margin-top: .5em;
376
+ margin-bottom: 0;
377
+ padding: .25em;
378
+ color: #337022; }
379
+ #content #build blockquote, #content #last_build blockquote {
380
+ padding: .75em;
381
+ margin-bottom: 2em; }
382
+ #content #build blockquote .meta, #content #last_build blockquote .meta {
383
+ margin-top: 1em;
384
+ display: block;
385
+ font-size: .9em; }
386
+ #content #build pre.output, #content #last_build pre.output {
387
+ background: #111;
388
+ color: #fff;
389
+ padding: .5em;
390
+ overflow: auto;
391
+ max-height: 50em;
392
+ font-size: .825em; }
393
+ #content #build pre.output .color30, #content #last_build pre.output .color30 {
394
+ color: #333; }
395
+ #content #build pre.output .color31, #content #last_build pre.output .color31 {
396
+ color: #e33; }
397
+ #content #build pre.output .color32, #content #last_build pre.output .color32 {
398
+ color: #3e3; }
399
+ #content #build pre.output .color33, #content #last_build pre.output .color33 {
400
+ color: #ee3; }
401
+ #content #build pre.output .color34, #content #last_build pre.output .color34 {
402
+ color: #33e; }
403
+ #content #build pre.output .color35, #content #last_build pre.output .color35 {
404
+ color: #e3e; }
405
+ #content #build pre.output .color36, #content #last_build pre.output .color36 {
406
+ color: #3ee; }
407
+ #content #build pre.output .color37, #content #last_build pre.output .color37 {
408
+ color: #fff; }
409
+ #content #push_path {
410
+ display: block;
411
+ margin-top: 1em;
412
+ margin-left: 2em; }
413
+
414
+ a.success {
415
+ color: #bbf8aa; }
416
+ a.success:hover {
417
+ background-color: #bbf8aa;
418
+ color: white; }
419
+ a.failed {
420
+ color: #ffbbaa; }
421
+ a.failed:hover {
422
+ background-color: #ffbbaa;
423
+ color: white; }
424
+
425
+ #footer {
426
+ padding: 1.5em 2.5em;
427
+ border-top: 1px solid #ccc;
428
+ font-size: .8em;
429
+ color: #666;
430
+ text-align: right; }
431
+ #footer strong {
432
+ font-weight: bold; }
433
+
434
+ table {
435
+ margin-top: 20px;
436
+ border-collapse: collapse;
437
+ border: 1px solid #666;
438
+ background: #fff;
439
+ margin-bottom: 20px;
440
+ }
441
+
442
+ table tr.light {
443
+ background: #fff;
444
+ }
445
+
446
+ table tr.dark {
447
+ background: #f9f9f9;
448
+ }
449
+
450
+ table tr:hover {
451
+ background: #FFFFC0;
452
+ }
453
+
454
+ table td, table th {
455
+ padding: 4px;
456
+ font-size: 11px;
457
+ }
458
+ table th {
459
+ text-align: center;
460
+ color: #337022;
461
+ background: #DDFFCC;
462
+ font-weight: bold;
463
+ border: #99D688 1px solid;
464
+ }
465
+
466
+ table td {
467
+ border: #d0d0d0 1px solid;
468
+ }
469
+
470
+ table td.score {
471
+ text-align: right;
472
+ }
473
+
474
+ .warning {
475
+ background: yellow;
476
+ }
477
+ .rcov_code td {
478
+ border-bottom: 1px solid #ddd ;
479
+ padding: 0;
480
+ margin: 0;
481
+ }
482
+ .rcov_code tr {
483
+ border: 0px;
484
+ padding:0px;
485
+ margin: 0px;
486
+ }
487
+ .rcov_code pre {
488
+ border: 0px;
489
+ padding: 0px;
490
+ margin: 0px;
491
+ }
492
+ .rcov_run {}
493
+ .rcov_not_run {
494
+ background-color: #d88;
495
+ }
496
+ .rcov_run a, .rcov_not_run a {
497
+ text-decoration: none;
498
+ }
499
+ .rcov_run a {
500
+ color: #333;
501
+ }
502
+ .rcov_not_run a {
503
+ color: #000;
504
+ }
505
+ .rcov_overflow {
506
+ overflow: auto;
507
+ font-size: 50%;
508
+ }
509
+
510
+ .bluff-tooltip {
511
+ background: #fff;
512
+ border: 1px solid #d1edf5;
513
+ padding: 8px 8px 6px;
514
+ }
515
+ .bluff-tooltip .color {
516
+ display: block;
517
+ height: 4px;
518
+ width: 30px;
519
+ margin: 0 0 4px;
520
+ overflow: hidden;
521
+ }
522
+ .bluff-tooltip .data {
523
+ font-weight: bold;
524
+ }
525
+
526
+ </style>
527
+ <link REL="SHORTCUT ICON" HREF="/favicon.ico">
528
+ <script language="javascript" src="js-class.js" type="text/javascript"></script>
529
+ <script language="javascript" src="bluff-min.js" type="text/javascript"></script>
530
+ <script language="javascript" src="excanvas.js" type="text/javascript"></script>
531
+ </head>
532
+ <body>
533
+ <div id='header'>
534
+ <h1><a href="/">metrics</a> | <a href="index.html">ninjs</a></h1>
535
+ <address class='watermark'>
536
+ built with
537
+ <a href='http://metric-fu.rubyforge.org/'>metric-fu</a>
538
+ </address>
539
+ </div>
540
+ <div id='content'>
541
+ <h3>Reek Results</h3>
542
+
543
+ <p><a href="http://reek.rubyforge.org/">Reek</a> detects common code smells in ruby code.</p>
544
+
545
+
546
+
547
+ <canvas id="graph"></canvas>
548
+ <script language="javascript" src="reek.js?1299355612" type="text/javascript"></script>
549
+
550
+
551
+ <table>
552
+ <tr>
553
+ <th>File Path</th>
554
+ <th>Method</th>
555
+ <th>Description</th>
556
+ <th>Type</th>
557
+ </tr>
558
+
559
+
560
+
561
+ <tr class='light'>
562
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs.rb'>lib/ninjs.rb</a></td>
563
+ <td>
564
+ Ninjs#base_directory
565
+ </td>
566
+ <td>
567
+ doesn't depend on instance state
568
+ </td>
569
+ <td>
570
+ LowCohesion
571
+ </td>
572
+ </tr>
573
+
574
+
575
+ <tr class='dark'>
576
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs.rb'>lib/ninjs.rb</a></td>
577
+ <td>
578
+ Ninjs#lib_directory
579
+ </td>
580
+ <td>
581
+ doesn't depend on instance state
582
+ </td>
583
+ <td>
584
+ LowCohesion
585
+ </td>
586
+ </tr>
587
+
588
+
589
+
590
+
591
+ <tr class='light'>
592
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
593
+ <td>
594
+ Ninjs::Command#create
595
+ </td>
596
+ <td>
597
+ has boolean parameter 'directory'
598
+ </td>
599
+ <td>
600
+ ControlCouple
601
+ </td>
602
+ </tr>
603
+
604
+
605
+ <tr class='dark'>
606
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
607
+ <td>
608
+ Ninjs::Command#create
609
+ </td>
610
+ <td>
611
+ is controlled by argument directory
612
+ </td>
613
+ <td>
614
+ ControlCouple
615
+ </td>
616
+ </tr>
617
+
618
+
619
+ <tr class='light'>
620
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
621
+ <td>
622
+ Ninjs::Command#generate
623
+ </td>
624
+ <td>
625
+ calls ((project.config.name + ".") + name) 4 times
626
+ </td>
627
+ <td>
628
+ Duplication
629
+ </td>
630
+ </tr>
631
+
632
+
633
+ <tr class='dark'>
634
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
635
+ <td>
636
+ Ninjs::Command#generate
637
+ </td>
638
+ <td>
639
+ calls (project.config.name + ".") 4 times
640
+ </td>
641
+ <td>
642
+ Duplication
643
+ </td>
644
+ </tr>
645
+
646
+
647
+ <tr class='light'>
648
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
649
+ <td>
650
+ Ninjs::Command#generate
651
+ </td>
652
+ <td>
653
+ calls name.downcase 11 times
654
+ </td>
655
+ <td>
656
+ Duplication
657
+ </td>
658
+ </tr>
659
+
660
+
661
+ <tr class='dark'>
662
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
663
+ <td>
664
+ Ninjs::Command#generate
665
+ </td>
666
+ <td>
667
+ calls project.config 5 times
668
+ </td>
669
+ <td>
670
+ Duplication
671
+ </td>
672
+ </tr>
673
+
674
+
675
+ <tr class='light'>
676
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
677
+ <td>
678
+ Ninjs::Command#generate
679
+ </td>
680
+ <td>
681
+ calls project.config.name 5 times
682
+ </td>
683
+ <td>
684
+ Duplication
685
+ </td>
686
+ </tr>
687
+
688
+
689
+ <tr class='dark'>
690
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
691
+ <td>
692
+ Ninjs::Command#generate
693
+ </td>
694
+ <td>
695
+ has 6 parameters
696
+ </td>
697
+ <td>
698
+ LongParameterList
699
+ </td>
700
+ </tr>
701
+
702
+
703
+ <tr class='light'>
704
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
705
+ <td>
706
+ Ninjs::Command#generate
707
+ </td>
708
+ <td>
709
+ has approx 16 statements
710
+ </td>
711
+ <td>
712
+ LongMethod
713
+ </td>
714
+ </tr>
715
+
716
+
717
+ <tr class='dark'>
718
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
719
+ <td>
720
+ Ninjs::Command#generate
721
+ </td>
722
+ <td>
723
+ has boolean parameter 'create_elements'
724
+ </td>
725
+ <td>
726
+ ControlCouple
727
+ </td>
728
+ </tr>
729
+
730
+
731
+ <tr class='light'>
732
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
733
+ <td>
734
+ Ninjs::Command#generate
735
+ </td>
736
+ <td>
737
+ has boolean parameter 'create_models'
738
+ </td>
739
+ <td>
740
+ ControlCouple
741
+ </td>
742
+ </tr>
743
+
744
+
745
+ <tr class='dark'>
746
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
747
+ <td>
748
+ Ninjs::Command#generate
749
+ </td>
750
+ <td>
751
+ has boolean parameter 'elements'
752
+ </td>
753
+ <td>
754
+ ControlCouple
755
+ </td>
756
+ </tr>
757
+
758
+
759
+ <tr class='light'>
760
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
761
+ <td>
762
+ Ninjs::Command#generate
763
+ </td>
764
+ <td>
765
+ has boolean parameter 'models'
766
+ </td>
767
+ <td>
768
+ ControlCouple
769
+ </td>
770
+ </tr>
771
+
772
+
773
+ <tr class='dark'>
774
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
775
+ <td>
776
+ Ninjs::Command#generate
777
+ </td>
778
+ <td>
779
+ is controlled by argument elements
780
+ </td>
781
+ <td>
782
+ ControlCouple
783
+ </td>
784
+ </tr>
785
+
786
+
787
+ <tr class='light'>
788
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
789
+ <td>
790
+ Ninjs::Command#generate
791
+ </td>
792
+ <td>
793
+ is controlled by argument models
794
+ </td>
795
+ <td>
796
+ ControlCouple
797
+ </td>
798
+ </tr>
799
+
800
+
801
+ <tr class='dark'>
802
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
803
+ <td>
804
+ Ninjs::Command#generate
805
+ </td>
806
+ <td>
807
+ refers to name more than self
808
+ </td>
809
+ <td>
810
+ LowCohesion
811
+ </td>
812
+ </tr>
813
+
814
+
815
+ <tr class='light'>
816
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
817
+ <td>
818
+ Ninjs::Command#watch
819
+ </td>
820
+ <td>
821
+ calls project.update 3 times
822
+ </td>
823
+ <td>
824
+ Duplication
825
+ </td>
826
+ </tr>
827
+
828
+
829
+ <tr class='dark'>
830
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
831
+ <td>
832
+ Ninjs::Command#watch
833
+ </td>
834
+ <td>
835
+ contains iterators nested 4 deep
836
+ </td>
837
+ <td>
838
+ NestedIterators
839
+ </td>
840
+ </tr>
841
+
842
+
843
+ <tr class='light'>
844
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
845
+ <td>
846
+ Ninjs::Command#watch
847
+ </td>
848
+ <td>
849
+ has approx 19 statements
850
+ </td>
851
+ <td>
852
+ LongMethod
853
+ </td>
854
+ </tr>
855
+
856
+
857
+ <tr class='dark'>
858
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/command.rb'>lib/ninjs/command.rb</a></td>
859
+ <td>
860
+ Ninjs::Command#watch
861
+ </td>
862
+ <td>
863
+ has the variable name 'g'
864
+ </td>
865
+ <td>
866
+ UncommunicativeName
867
+ </td>
868
+ </tr>
869
+
870
+
871
+
872
+
873
+ <tr class='light'>
874
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/configuration.rb'>lib/ninjs/configuration.rb</a></td>
875
+ <td>
876
+ Ninjs::Configuration
877
+ </td>
878
+ <td>
879
+ has at least 10 instance variables
880
+ </td>
881
+ <td>
882
+ LargeClass
883
+ </td>
884
+ </tr>
885
+
886
+
887
+ <tr class='dark'>
888
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/configuration.rb'>lib/ninjs/configuration.rb</a></td>
889
+ <td>
890
+ Ninjs::Configuration
891
+ </td>
892
+ <td>
893
+ has no descriptive comment
894
+ </td>
895
+ <td>
896
+ IrresponsibleModule
897
+ </td>
898
+ </tr>
899
+
900
+
901
+ <tr class='light'>
902
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/configuration.rb'>lib/ninjs/configuration.rb</a></td>
903
+ <td>
904
+ Ninjs::Configuration#conf_content
905
+ </td>
906
+ <td>
907
+ doesn't depend on instance state
908
+ </td>
909
+ <td>
910
+ LowCohesion
911
+ </td>
912
+ </tr>
913
+
914
+
915
+ <tr class='dark'>
916
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/configuration.rb'>lib/ninjs/configuration.rb</a></td>
917
+ <td>
918
+ Ninjs::Configuration#conf_content
919
+ </td>
920
+ <td>
921
+ refers to options more than self
922
+ </td>
923
+ <td>
924
+ LowCohesion
925
+ </td>
926
+ </tr>
927
+
928
+
929
+ <tr class='light'>
930
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/configuration.rb'>lib/ninjs/configuration.rb</a></td>
931
+ <td>
932
+ Ninjs::Configuration#read
933
+ </td>
934
+ <td>
935
+ calls config["name"] twice
936
+ </td>
937
+ <td>
938
+ Duplication
939
+ </td>
940
+ </tr>
941
+
942
+
943
+ <tr class='dark'>
944
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/configuration.rb'>lib/ninjs/configuration.rb</a></td>
945
+ <td>
946
+ Ninjs::Configuration#read
947
+ </td>
948
+ <td>
949
+ has approx 9 statements
950
+ </td>
951
+ <td>
952
+ LongMethod
953
+ </td>
954
+ </tr>
955
+
956
+
957
+
958
+
959
+
960
+
961
+ <tr class='light'>
962
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/helpers.rb'>lib/ninjs/helpers.rb</a></td>
963
+ <td>
964
+ Ninjs::Helpers#create_module_filename
965
+ </td>
966
+ <td>
967
+ doesn't depend on instance state
968
+ </td>
969
+ <td>
970
+ LowCohesion
971
+ </td>
972
+ </tr>
973
+
974
+
975
+ <tr class='dark'>
976
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/helpers.rb'>lib/ninjs/helpers.rb</a></td>
977
+ <td>
978
+ Ninjs::Helpers#create_module_filename
979
+ </td>
980
+ <td>
981
+ refers to module_filename more than self
982
+ </td>
983
+ <td>
984
+ LowCohesion
985
+ </td>
986
+ </tr>
987
+
988
+
989
+ <tr class='light'>
990
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/helpers.rb'>lib/ninjs/helpers.rb</a></td>
991
+ <td>
992
+ Ninjs::Helpers#create_module_filename
993
+ </td>
994
+ <td>
995
+ refers to module_name more than self
996
+ </td>
997
+ <td>
998
+ LowCohesion
999
+ </td>
1000
+ </tr>
1001
+
1002
+
1003
+ <tr class='dark'>
1004
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/helpers.rb'>lib/ninjs/helpers.rb</a></td>
1005
+ <td>
1006
+ Ninjs::Helpers#create_module_filename
1007
+ </td>
1008
+ <td>
1009
+ refers to piece more than self
1010
+ </td>
1011
+ <td>
1012
+ LowCohesion
1013
+ </td>
1014
+ </tr>
1015
+
1016
+
1017
+ <tr class='light'>
1018
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/helpers.rb'>lib/ninjs/helpers.rb</a></td>
1019
+ <td>
1020
+ Ninjs::Helpers#create_module_filename
1021
+ </td>
1022
+ <td>
1023
+ refers to split more than self
1024
+ </td>
1025
+ <td>
1026
+ LowCohesion
1027
+ </td>
1028
+ </tr>
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+ <tr class='dark'>
1036
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1037
+ <td>
1038
+ Ninjs::Project
1039
+ </td>
1040
+ <td>
1041
+ has no descriptive comment
1042
+ </td>
1043
+ <td>
1044
+ IrresponsibleModule
1045
+ </td>
1046
+ </tr>
1047
+
1048
+
1049
+ <tr class='light'>
1050
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1051
+ <td>
1052
+ Ninjs::Project#add_slashes
1053
+ </td>
1054
+ <td>
1055
+ doesn't depend on instance state
1056
+ </td>
1057
+ <td>
1058
+ LowCohesion
1059
+ </td>
1060
+ </tr>
1061
+
1062
+
1063
+ <tr class='dark'>
1064
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1065
+ <td>
1066
+ Ninjs::Project#add_slashes
1067
+ </td>
1068
+ <td>
1069
+ refers to dir more than self
1070
+ </td>
1071
+ <td>
1072
+ LowCohesion
1073
+ </td>
1074
+ </tr>
1075
+
1076
+
1077
+ <tr class='light'>
1078
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1079
+ <td>
1080
+ Ninjs::Project#compile_application_file
1081
+ </td>
1082
+ <td>
1083
+ has approx 6 statements
1084
+ </td>
1085
+ <td>
1086
+ LongMethod
1087
+ </td>
1088
+ </tr>
1089
+
1090
+
1091
+ <tr class='dark'>
1092
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1093
+ <td>
1094
+ Ninjs::Project#compress_application
1095
+ </td>
1096
+ <td>
1097
+ contains iterators nested 2 deep
1098
+ </td>
1099
+ <td>
1100
+ NestedIterators
1101
+ </td>
1102
+ </tr>
1103
+
1104
+
1105
+ <tr class='light'>
1106
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1107
+ <td>
1108
+ Ninjs::Project#compress_application
1109
+ </td>
1110
+ <td>
1111
+ has approx 7 statements
1112
+ </td>
1113
+ <td>
1114
+ LongMethod
1115
+ </td>
1116
+ </tr>
1117
+
1118
+
1119
+ <tr class='dark'>
1120
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1121
+ <td>
1122
+ Ninjs::Project#compress_application
1123
+ </td>
1124
+ <td>
1125
+ refers to modules more than self
1126
+ </td>
1127
+ <td>
1128
+ LowCohesion
1129
+ </td>
1130
+ </tr>
1131
+
1132
+
1133
+ <tr class='light'>
1134
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1135
+ <td>
1136
+ Ninjs::Project#create
1137
+ </td>
1138
+ <td>
1139
+ has approx 8 statements
1140
+ </td>
1141
+ <td>
1142
+ LongMethod
1143
+ </td>
1144
+ </tr>
1145
+
1146
+
1147
+ <tr class='dark'>
1148
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1149
+ <td>
1150
+ Ninjs::Project#create_module_file
1151
+ </td>
1152
+ <td>
1153
+ has approx 9 statements
1154
+ </td>
1155
+ <td>
1156
+ LongMethod
1157
+ </td>
1158
+ </tr>
1159
+
1160
+
1161
+ <tr class='light'>
1162
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1163
+ <td>
1164
+ Ninjs::Project#create_project_structure
1165
+ </td>
1166
+ <td>
1167
+ calls File.exists?("#{@project_path}#{folder}") twice
1168
+ </td>
1169
+ <td>
1170
+ Duplication
1171
+ </td>
1172
+ </tr>
1173
+
1174
+
1175
+ <tr class='dark'>
1176
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1177
+ <td>
1178
+ Ninjs::Project#get_files_timestamps
1179
+ </td>
1180
+ <td>
1181
+ doesn't depend on instance state
1182
+ </td>
1183
+ <td>
1184
+ LowCohesion
1185
+ </td>
1186
+ </tr>
1187
+
1188
+
1189
+ <tr class='light'>
1190
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1191
+ <td>
1192
+ Ninjs::Project#get_files_timestamps
1193
+ </td>
1194
+ <td>
1195
+ refers to files more than self
1196
+ </td>
1197
+ <td>
1198
+ LowCohesion
1199
+ </td>
1200
+ </tr>
1201
+
1202
+
1203
+ <tr class='dark'>
1204
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1205
+ <td>
1206
+ Ninjs::Project#get_files_timestamps
1207
+ </td>
1208
+ <td>
1209
+ refers to timestamped_files more than self
1210
+ </td>
1211
+ <td>
1212
+ LowCohesion
1213
+ </td>
1214
+ </tr>
1215
+
1216
+
1217
+ <tr class='light'>
1218
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1219
+ <td>
1220
+ Ninjs::Project#import_test_files
1221
+ </td>
1222
+ <td>
1223
+ calls Ninjs.base_directory 5 times
1224
+ </td>
1225
+ <td>
1226
+ Duplication
1227
+ </td>
1228
+ </tr>
1229
+
1230
+
1231
+ <tr class='dark'>
1232
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1233
+ <td>
1234
+ Ninjs::Project#update
1235
+ </td>
1236
+ <td>
1237
+ has approx 6 statements
1238
+ </td>
1239
+ <td>
1240
+ LongMethod
1241
+ </td>
1242
+ </tr>
1243
+
1244
+
1245
+ <tr class='light'>
1246
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1247
+ <td>
1248
+ Ninjs::Project#update_application_file
1249
+ </td>
1250
+ <td>
1251
+ has approx 6 statements
1252
+ </td>
1253
+ <td>
1254
+ LongMethod
1255
+ </td>
1256
+ </tr>
1257
+
1258
+
1259
+ <tr class='dark'>
1260
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1261
+ <td>
1262
+ Ninjs::Project#write_autoload
1263
+ </td>
1264
+ <td>
1265
+ refers to file more than self
1266
+ </td>
1267
+ <td>
1268
+ LowCohesion
1269
+ </td>
1270
+ </tr>
1271
+
1272
+
1273
+ <tr class='light'>
1274
+ <td><a href='txmt://open/?url=file:///Volumes/Storage/Development/ninjs/lib/ninjs/project.rb'>lib/ninjs/project.rb</a></td>
1275
+ <td>
1276
+ Ninjs::Project#write_dependencies
1277
+ </td>
1278
+ <td>
1279
+ refers to file more than self
1280
+ </td>
1281
+ <td>
1282
+ LowCohesion
1283
+ </td>
1284
+ </tr>
1285
+
1286
+
1287
+
1288
+
1289
+ </table>
1290
+ <p>Generated on 2011-03-05 14:06:52 -0600</p>
1291
+
1292
+ </div>
1293
+ </body>
1294
+ </html>