ninjs 0.10.2 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
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>