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 @@
1
+ JS={extend:function(a,b){b=b||{};for(var c in b){if(a[c]===b[c])continue;a[c]=b[c]}return a},makeFunction:function(){return function(){return this.initialize?(this.initialize.apply(this,arguments)||this):this}},makeBridge:function(a){var b=function(){};b.prototype=a.prototype;return new b},bind:function(){var a=JS.array(arguments),b=a.shift(),c=a.shift()||null;return function(){return b.apply(c,a.concat(JS.array(arguments)))}},callsSuper:function(a){return a.SUPER===undefined?a.SUPER=/\bcallSuper\b/.test(a.toString()):a.SUPER},mask:function(a){var b=a.toString().replace(/callSuper/g,'super');a.toString=function(){return b};return a},array:function(a){if(!a)return[];if(a.toArray)return a.toArray();var b=a.length,c=[];while(b--)c[b]=a[b];return c},indexOf:function(a,b){for(var c=0,d=a.length;c<d;c++){if(a[c]===b)return c}return-1},isFn:function(a){return a instanceof Function},isType:function(a,b){if(!a||!b)return false;return(b instanceof Function&&a instanceof b)||(typeof b==='string'&&typeof a===b)||(a.isA&&a.isA(b))},ignore:function(a,b){return/^(include|extend)$/.test(a)&&typeof b==='object'}};JS.Module=JS.makeFunction();JS.extend(JS.Module.prototype,{END_WITHOUT_DOT:/([^\.])$/,initialize:function(a,b,c){this.__mod__=this;this.__inc__=[];this.__fns__={};this.__dep__=[];this.__mct__={};if(typeof a==='string'){this.__nom__=this.displayName=a}else{this.__nom__=this.displayName='';c=b;b=a}c=c||{};this.__res__=c._1||null;if(b)this.include(b,false);if(JS.Module.__chainq__)JS.Module.__chainq__.push(this)},setName:function(a){this.__nom__=this.displayName=a||'';for(var b in this.__mod__.__fns__)this.__name__(b);if(a&&this.__meta__)this.__meta__.setName(a+'.')},__name__:function(a){if(!this.__nom__)return;var b=this.__mod__.__fns__[a]||{};a=this.__nom__.replace(this.END_WITHOUT_DOT,'$1#')+a;if(JS.isFn(b.setName))return b.setName(a);if(JS.isFn(b))b.displayName=a},define:function(a,b,c,d){var f=(d||{})._0||this;this.__fns__[a]=b;this.__name__(a);if(JS.Module._0&&f&&JS.isFn(b))JS.Module._0(a,f);if(c!==false)this.resolve()},instanceMethod:function(a){var b=this.lookup(a).pop();return JS.isFn(b)?b:null},instanceMethods:function(a,b){var c=this.__mod__,b=b||[],d=c.ancestors(),f=d.length,e;for(e in c.__fns__){if(c.__fns__.hasOwnProperty(e)&&JS.isFn(c.__fns__[e])&&JS.indexOf(b,e)===-1)b.push(e)}if(a===false)return b;while(f--)d[f].instanceMethods(false,b);return b},include:function(a,b,c){b=(b!==false);if(!a)return b?this.resolve():this.uncache();c=c||{};if(a.__mod__)a=a.__mod__;var d=a.include,f=a.extend,e=c._4||this,g,h,i,j;if(a.__inc__&&a.__fns__){this.__inc__.push(a);a.__dep__.push(this);if(c._2)a.extended&&a.extended(c._2);else a.included&&a.included(e)}else{if(c._5){for(h in a){if(JS.ignore(h,a[h]))continue;this.define(h,a[h],false,{_0:e||c._2||this})}}else{if(typeof d==='object'||JS.isType(d,JS.Module)){g=[].concat(d);for(i=0,j=g.length;i<j;i++)e.include(g[i],b,c)}if(typeof f==='object'||JS.isType(f,JS.Module)){g=[].concat(f);for(i=0,j=g.length;i<j;i++)e.extend(g[i],false);e.extend()}c._5=true;return e.include(a,b,c)}}b?this.resolve():this.uncache()},includes:function(a){var b=this.__mod__,c=b.__inc__.length;if(Object===a||b===a||b.__res__===a.prototype)return true;while(c--){if(b.__inc__[c].includes(a))return true}return false},match:function(a){return a.isA&&a.isA(this)},ancestors:function(a){var b=this.__mod__,c=(a===undefined),d=(b.__res__||{}).klass,f=(d&&b.__res__===d.prototype)?d:b,e,g;if(c&&b.__anc__)return b.__anc__.slice();a=a||[];for(e=0,g=b.__inc__.length;e<g;e++)b.__inc__[e].ancestors(a);if(JS.indexOf(a,f)===-1)a.push(f);if(c)b.__anc__=a.slice();return a},lookup:function(a){var b=this.__mod__,c=b.__mct__;if(c[a])return c[a].slice();var d=b.ancestors(),f=[],e,g,h;for(e=0,g=d.length;e<g;e++){h=d[e].__mod__.__fns__[a];if(h)f.push(h)}c[a]=f.slice();return f},make:function(a,b){if(!JS.isFn(b)||!JS.callsSuper(b))return b;var c=this;return function(){return c.chain(this,a,arguments)}},chain:JS.mask(function(c,d,f){var e=this.lookup(d),g=e.length-1,h=c.callSuper,i=JS.array(f),j;c.callSuper=function(){var a=arguments.length;while(a--)i[a]=arguments[a];g-=1;var b=e[g].apply(c,i);g+=1;return b};j=e.pop().apply(c,i);h?c.callSuper=h:delete c.callSuper;return j}),resolve:function(a){var b=this.__mod__,a=a||b,c=a.__res__,d,f,e,g;if(a===b){b.uncache(false);d=b.__dep__.length;while(d--)b.__dep__[d].resolve()}if(!c)return;for(d=0,f=b.__inc__.length;d<f;d++)b.__inc__[d].resolve(a);for(e in b.__fns__){g=a.make(e,b.__fns__[e]);if(c[e]!==g)c[e]=g}},uncache:function(a){var b=this.__mod__,c=b.__dep__.length;b.__anc__=null;b.__mct__={};if(a===false)return;while(c--)b.__dep__[c].uncache()}});JS.Class=JS.makeFunction();JS.extend(JS.Class.prototype=JS.makeBridge(JS.Module),{initialize:function(a,b,c){if(typeof a==='string'){this.__nom__=this.displayName=a}else{this.__nom__=this.displayName='';c=b;b=a}var d=JS.extend(JS.makeFunction(),this);d.klass=d.constructor=this.klass;if(!JS.isFn(b)){c=b;b=Object}d.inherit(b);d.include(c,false);d.resolve();do{b.inherited&&b.inherited(d)}while(b=b.superclass);return d},inherit:function(a){this.superclass=a;if(this.__eigen__&&a.__eigen__)this.extend(a.__eigen__(),true);this.subclasses=[];(a.subclasses||[]).push(this);var b=this.prototype=JS.makeBridge(a);b.klass=b.constructor=this;this.__mod__=new JS.Module(this.__nom__,{},{_1:this.prototype});this.include(JS.Kernel,false);if(a!==Object)this.include(a.__mod__||new JS.Module(a.prototype,{_1:a.prototype}),false)},include:function(a,b,c){if(!a)return;var d=this.__mod__,c=c||{};c._4=this;return d.include(a,b,c)},define:function(a,b,c,d){var f=this.__mod__;d=d||{};d._0=this;f.define(a,b,c,d)}});JS.Module=new JS.Class('Module',JS.Module.prototype);JS.Class=new JS.Class('Class',JS.Module,JS.Class.prototype);JS.Module.klass=JS.Module.constructor=JS.Class.klass=JS.Class.constructor=JS.Class;JS.extend(JS.Module,{_3:[],__chainq__:[],methodAdded:function(a,b){this._3.push([a,b])},_0:function(a,b){var c=this._3,d=c.length;while(d--)c[d][0].call(c[d][1]||null,a,b)}});JS.Kernel=JS.extend(new JS.Module('Kernel',{__eigen__:function(){if(this.__meta__)return this.__meta__;var a=this.__nom__,b=this.klass.__nom__,c=a||(b?'#<'+b+'>':''),d=this.__meta__=new JS.Module(c?c+'.':'',{},{_1:this});d.include(this.klass.__mod__,false);return d},equals:function(a){return this===a},extend:function(a,b){return this.__eigen__().include(a,b,{_2:this})},hash:function(){return this.__hashcode__=this.__hashcode__||JS.Kernel.getHashCode()},isA:function(a){return this.__eigen__().includes(a)},method:function(a){var b=this,c=b.__mcache__=b.__mcache__||{};if((c[a]||{}).fn===b[a])return c[a].bd;return(c[a]={fn:b[a],bd:JS.bind(b[a],b)}).bd},methods:function(){return this.__eigen__().instanceMethods(true)},tap:function(a,b){a.call(b||null,this);return this}}),{__hashIndex__:0,getHashCode:function(){this.__hashIndex__+=1;return(Math.floor(new Date().getTime()/1000)+this.__hashIndex__).toString(16)}});JS.Module.include(JS.Kernel);JS.extend(JS.Module,JS.Kernel.__fns__);JS.Class.include(JS.Kernel);JS.extend(JS.Class,JS.Kernel.__fns__);JS.Interface=new JS.Class({initialize:function(d){this.test=function(a,b){var c=d.length;while(c--){if(!JS.isFn(a[d[c]]))return b?d[c]:false}return true}},extend:{ensure:function(){var a=JS.array(arguments),b=a.shift(),c,d;while(c=a.shift()){d=c.test(b,true);if(d!==true)throw new Error('object does not implement '+d+'()');}}}});JS.Singleton=new JS.Class({initialize:function(a,b,c){return new(new JS.Class(a,b,c))}});
@@ -0,0 +1,49 @@
1
+ <html><head><style>table { background: #fff; color: #000; }
2
+ .ruby .normal { color: #000; }
3
+ .ruby .comment { color: #005; font-style: italic; }
4
+ .ruby .keyword { color: #A44; font-weight: bold; }
5
+ .ruby .method { color: #44f; }
6
+ .ruby .class { color: #b1713d; }
7
+ .ruby .module { color: #050; }
8
+ .ruby .punct { color: #668; font-weight: bold; }
9
+ .ruby .symbol { color: #00f; }
10
+ .ruby .string { color: #4a4; }
11
+ .ruby .char { color: #F07; }
12
+ .ruby .ident { color: #000; }
13
+ .ruby .constant { color: #b1713d; }
14
+ .ruby .regex { color: #B66; background: #FEF; }
15
+ .ruby .number { color: #F99; }
16
+ .ruby .attribute { color: #f84; }
17
+ .ruby .global { color: #7FB; }
18
+ .ruby .expr { color: #227; }
19
+ .ruby .escape { color: #277; }</style></head><body><table cellpadding='0' cellspacing='0' class='ruby'><tr><td valign='top'><small>1</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line1'><pre><span class="keyword">module </span><span class="module">Ninjs</span>
20
+ </pre></a></td></tr><tr><td valign='top'><small>2</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line2'><pre> <span class="keyword">def </span><span class="method">version</span>
21
+ </pre></a></td></tr><tr><td valign='top'><small>3</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line3'><pre> <span class="punct">'</span><span class="string">0.10.1</span><span class="punct">'</span>
22
+ </pre></a></td></tr><tr><td valign='top'><small>4</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line4'><pre> <span class="keyword">end</span>
23
+ </pre></a></td></tr><tr><td valign='top'><small>5</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line5'><pre>
24
+ </pre></a></td></tr><tr><td valign='top'><small>6</small></td><td valign='top'><ul><li>Score of 4.50 &raquo; flog</li></ul></td><td valign='top'><a name='line6'><pre> <span class="keyword">def </span><span class="method">base_directory</span>
25
+ </pre></a></td></tr><tr><td valign='top'><small>7</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line7'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">expand_path</span><span class="punct">(</span><span class="constant">File</span><span class="punct">.</span><span class="ident">join</span><span class="punct">(</span><span class="constant">File</span><span class="punct">.</span><span class="ident">dirname</span><span class="punct">(</span><span class="constant">__FILE__</span><span class="punct">),</span> <span class="punct">'</span><span class="string">..</span><span class="punct">'))</span>
26
+ </pre></a></td></tr><tr><td valign='top'><small>8</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line8'><pre> <span class="keyword">end</span>
27
+ </pre></a></td></tr><tr><td valign='top'><small>9</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line9'><pre>
28
+ </pre></a></td></tr><tr><td valign='top'><small>10</small></td><td valign='top'><ul><li>Score of 4.50 &raquo; flog</li></ul></td><td valign='top'><a name='line10'><pre> <span class="keyword">def </span><span class="method">lib_directory</span>
29
+ </pre></a></td></tr><tr><td valign='top'><small>11</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line11'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">expand_path</span><span class="punct">(</span><span class="constant">File</span><span class="punct">.</span><span class="ident">join</span><span class="punct">(</span><span class="constant">File</span><span class="punct">.</span><span class="ident">dirname</span><span class="punct">(</span><span class="constant">__FILE__</span><span class="punct">)))</span>
30
+ </pre></a></td></tr><tr><td valign='top'><small>12</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line12'><pre> <span class="keyword">end</span>
31
+ </pre></a></td></tr><tr><td valign='top'><small>13</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line13'><pre>
32
+ </pre></a></td></tr><tr><td valign='top'><small>14</small></td><td valign='top'><ul><li>Score of 1.30 &raquo; flog</li></ul></td><td valign='top'><a name='line14'><pre> <span class="keyword">def </span><span class="method">root_directory</span>
33
+ </pre></a></td></tr><tr><td valign='top'><small>15</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line15'><pre> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">getwd</span>
34
+ </pre></a></td></tr><tr><td valign='top'><small>16</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line16'><pre> <span class="keyword">end</span>
35
+ </pre></a></td></tr><tr><td valign='top'><small>17</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line17'><pre>
36
+ </pre></a></td></tr><tr><td valign='top'><small>18</small></td><td valign='top'><ul><li>Score of 2.80 &raquo; flog</li></ul></td><td valign='top'><a name='line18'><pre> <span class="keyword">def </span><span class="method">repository_root</span>
37
+ </pre></a></td></tr><tr><td valign='top'><small>19</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line19'><pre> <span class="ident">base_directory</span> <span class="punct">+</span> <span class="punct">'</span><span class="string">/repository/</span><span class="punct">'</span>
38
+ </pre></a></td></tr><tr><td valign='top'><small>20</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line20'><pre> <span class="keyword">end</span>
39
+ </pre></a></td></tr><tr><td valign='top'><small>21</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line21'><pre>
40
+ </pre></a></td></tr><tr><td valign='top'><small>22</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line22'><pre> <span class="ident">module_function</span> <span class="symbol">:version</span><span class="punct">,</span>
41
+ </pre></a></td></tr><tr><td valign='top'><small>23</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line23'><pre> <span class="symbol">:base_directory</span><span class="punct">,</span>
42
+ </pre></a></td></tr><tr><td valign='top'><small>24</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line24'><pre> <span class="symbol">:lib_directory</span><span class="punct">,</span>
43
+ </pre></a></td></tr><tr><td valign='top'><small>25</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line25'><pre> <span class="symbol">:root_directory</span><span class="punct">,</span>
44
+ </pre></a></td></tr><tr><td valign='top'><small>26</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line26'><pre> <span class="symbol">:repository_root</span>
45
+ </pre></a></td></tr><tr><td valign='top'><small>27</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line27'><pre><span class="keyword">end</span>
46
+ </pre></a></td></tr><tr><td valign='top'><small>28</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line28'><pre>
47
+ </pre></a></td></tr><tr><td valign='top'><small>29</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line29'><pre><span class="punct">%w(</span><span class="string">dependencies configuration helpers manifest project command</span><span class="punct">).</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">lib</span><span class="punct">|</span>
48
+ </pre></a></td></tr><tr><td valign='top'><small>30</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line30'><pre> <span class="ident">require</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.lib_directory}</span>/ninjs/<span class="expr">#{lib}</span></span><span class="punct">&quot;</span>
49
+ </pre></a></td></tr><tr><td valign='top'><small>31</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line31'><pre><span class="keyword">end</span></pre></a></td></tr><table></body></html>
@@ -0,0 +1,137 @@
1
+ <html><head><style>table { background: #fff; color: #000; }
2
+ .ruby .normal { color: #000; }
3
+ .ruby .comment { color: #005; font-style: italic; }
4
+ .ruby .keyword { color: #A44; font-weight: bold; }
5
+ .ruby .method { color: #44f; }
6
+ .ruby .class { color: #b1713d; }
7
+ .ruby .module { color: #050; }
8
+ .ruby .punct { color: #668; font-weight: bold; }
9
+ .ruby .symbol { color: #00f; }
10
+ .ruby .string { color: #4a4; }
11
+ .ruby .char { color: #F07; }
12
+ .ruby .ident { color: #000; }
13
+ .ruby .constant { color: #b1713d; }
14
+ .ruby .regex { color: #B66; background: #FEF; }
15
+ .ruby .number { color: #F99; }
16
+ .ruby .attribute { color: #f84; }
17
+ .ruby .global { color: #7FB; }
18
+ .ruby .expr { color: #227; }
19
+ .ruby .escape { color: #277; }</style></head><body><table cellpadding='0' cellspacing='0' class='ruby'><tr><td valign='top'><small>1</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line1'><pre><span class="keyword">module </span><span class="module">Ninjs</span>
20
+ </pre></a></td></tr><tr><td valign='top'><small>2</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line2'><pre> <span class="keyword">module </span><span class="module">Command</span>
21
+ </pre></a></td></tr><tr><td valign='top'><small>3</small></td><td valign='top'><ul><li>Score of 43.29 &raquo; flog</li><li>Method "watch" has 39 lines. It should have 20 or less. &raquo; roodi</li></ul></td><td valign='top'><a name='line3'><pre> <span class="keyword">def </span><span class="method">watch</span>
22
+ </pre></a></td></tr><tr><td valign='top'><small>4</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line4'><pre> <span class="ident">require</span> <span class="punct">&quot;</span><span class="string">fssm</span><span class="punct">&quot;</span>
23
+ </pre></a></td></tr><tr><td valign='top'><small>5</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line5'><pre> <span class="ident">project_path</span> <span class="punct">=</span> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">getwd</span> <span class="punct">&lt;&lt;</span> <span class="punct">'</span><span class="string">/</span><span class="punct">'</span>
24
+ </pre></a></td></tr><tr><td valign='top'><small>6</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line6'><pre> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">ninjs.conf was not located in <span class="expr">#{project_path}</span></span><span class="punct">&quot;</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>ninjs.conf</span><span class="punct">&quot;</span>
25
+ </pre></a></td></tr><tr><td valign='top'><small>7</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line7'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\e</span>[32m&gt;&gt;&gt;<span class="escape">\e</span>[0m Ninjs are watching for changes. Press Ctrl-C to stop.</span><span class="punct">&quot;</span>
26
+ </pre></a></td></tr><tr><td valign='top'><small>8</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line8'><pre> <span class="ident">project</span> <span class="punct">=</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Project</span><span class="punct">.</span><span class="ident">new</span>
27
+ </pre></a></td></tr><tr><td valign='top'><small>9</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line9'><pre> <span class="ident">project</span><span class="punct">.</span><span class="ident">update</span>
28
+ </pre></a></td></tr><tr><td valign='top'><small>10</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line10'><pre>
29
+ </pre></a></td></tr><tr><td valign='top'><small>11</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line11'><pre> <span class="ident">watch_dirs</span> <span class="punct">=</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Manifest</span><span class="punct">.</span><span class="ident">directories</span><span class="punct">.</span><span class="ident">reject</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">dir</span><span class="punct">|</span> <span class="ident">dir</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">application|tests</span><span class="punct">/)</span> <span class="punct">}</span>
30
+ </pre></a></td></tr><tr><td valign='top'><small>12</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line12'><pre> <span class="ident">watch_hash</span> <span class="punct">=</span> <span class="constant">Hash</span><span class="punct">.</span><span class="ident">new</span>
31
+ </pre></a></td></tr><tr><td valign='top'><small>13</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line13'><pre>
32
+ </pre></a></td></tr><tr><td valign='top'><small>14</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line14'><pre> <span class="ident">watch_dirs</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">dir</span><span class="punct">|</span>
33
+ </pre></a></td></tr><tr><td valign='top'><small>15</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line15'><pre> <span class="ident">watch_hash</span><span class="punct">[&quot;</span><span class="string"><span class="expr">#{project_path}#{dir}</span></span><span class="punct">&quot;]</span> <span class="punct">=</span> <span class="punct">&quot;</span><span class="string">**/*.js</span><span class="punct">&quot;</span>
34
+ </pre></a></td></tr><tr><td valign='top'><small>16</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line16'><pre> <span class="keyword">end</span>
35
+ </pre></a></td></tr><tr><td valign='top'><small>17</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line17'><pre>
36
+ </pre></a></td></tr><tr><td valign='top'><small>18</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line18'><pre> <span class="ident">watch_hash</span><span class="punct">[</span><span class="ident">project_path</span><span class="punct">]</span> <span class="punct">=</span> <span class="punct">&quot;</span><span class="string">**/*.conf</span><span class="punct">&quot;</span>
37
+ </pre></a></td></tr><tr><td valign='top'><small>19</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line19'><pre> <span class="ident">watch_hash</span><span class="punct">[&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span>/repository</span><span class="punct">&quot;]</span> <span class="punct">=</span> <span class="punct">&quot;</span><span class="string">**/*.js</span><span class="punct">&quot;</span>
38
+ </pre></a></td></tr><tr><td valign='top'><small>20</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line20'><pre>
39
+ </pre></a></td></tr><tr><td valign='top'><small>21</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line21'><pre> <span class="constant">FSSM</span><span class="punct">.</span><span class="ident">monitor</span> <span class="keyword">do</span>
40
+ </pre></a></td></tr><tr><td valign='top'><small>22</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line22'><pre>
41
+ </pre></a></td></tr><tr><td valign='top'><small>23</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line23'><pre> <span class="ident">watch_hash</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">dir</span><span class="punct">,</span> <span class="ident">g</span><span class="punct">|</span>
42
+ </pre></a></td></tr><tr><td valign='top'><small>24</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line24'><pre>
43
+ </pre></a></td></tr><tr><td valign='top'><small>25</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line25'><pre> <span class="ident">path</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{dir}</span></span><span class="punct">&quot;</span> <span class="keyword">do</span>
44
+ </pre></a></td></tr><tr><td valign='top'><small>26</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line26'><pre> <span class="ident">glob</span> <span class="ident">g</span>
45
+ </pre></a></td></tr><tr><td valign='top'><small>27</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line27'><pre>
46
+ </pre></a></td></tr><tr><td valign='top'><small>28</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line28'><pre> <span class="ident">update</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">base</span><span class="punct">,</span> <span class="ident">relative</span><span class="punct">|</span>
47
+ </pre></a></td></tr><tr><td valign='top'><small>29</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line29'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\e</span>[33m&lt;&lt;&lt;<span class="escape">\e</span>[0m change detected in <span class="expr">#{relative}</span></span><span class="punct">&quot;</span>
48
+ </pre></a></td></tr><tr><td valign='top'><small>30</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line30'><pre> <span class="ident">project</span><span class="punct">.</span><span class="ident">update</span>
49
+ </pre></a></td></tr><tr><td valign='top'><small>31</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line31'><pre> <span class="keyword">end</span>
50
+ </pre></a></td></tr><tr><td valign='top'><small>32</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line32'><pre>
51
+ </pre></a></td></tr><tr><td valign='top'><small>33</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line33'><pre> <span class="ident">create</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">base</span><span class="punct">,</span> <span class="ident">relative</span><span class="punct">|</span>
52
+ </pre></a></td></tr><tr><td valign='top'><small>34</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line34'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{relative}</span> created</span><span class="punct">&quot;</span>
53
+ </pre></a></td></tr><tr><td valign='top'><small>35</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line35'><pre> <span class="ident">project</span><span class="punct">.</span><span class="ident">update</span>
54
+ </pre></a></td></tr><tr><td valign='top'><small>36</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line36'><pre> <span class="keyword">end</span>
55
+ </pre></a></td></tr><tr><td valign='top'><small>37</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line37'><pre> <span class="keyword">end</span>
56
+ </pre></a></td></tr><tr><td valign='top'><small>38</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line38'><pre>
57
+ </pre></a></td></tr><tr><td valign='top'><small>39</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line39'><pre> <span class="keyword">end</span>
58
+ </pre></a></td></tr><tr><td valign='top'><small>40</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line40'><pre>
59
+ </pre></a></td></tr><tr><td valign='top'><small>41</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line41'><pre> <span class="keyword">end</span>
60
+ </pre></a></td></tr><tr><td valign='top'><small>42</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line42'><pre>
61
+ </pre></a></td></tr><tr><td valign='top'><small>43</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line43'><pre> <span class="keyword">end</span>
62
+ </pre></a></td></tr><tr><td valign='top'><small>44</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line44'><pre>
63
+ </pre></a></td></tr><tr><td valign='top'><small>45</small></td><td valign='top'><ul><li>Score of 7.16 &raquo; flog</li></ul></td><td valign='top'><a name='line45'><pre> <span class="keyword">def </span><span class="method">create</span><span class="punct">(</span><span class="ident">name</span><span class="punct">,</span> <span class="ident">directory</span> <span class="punct">=</span> <span class="constant">false</span><span class="punct">)</span>
64
+ </pre></a></td></tr><tr><td valign='top'><small>46</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line46'><pre> <span class="keyword">raise</span> <span class="punct">'</span><span class="string">you must specify a project name: ninjs create ProjectName</span><span class="punct">'</span> <span class="keyword">if</span> <span class="ident">name</span><span class="punct">.</span><span class="ident">nil?</span>
65
+ </pre></a></td></tr><tr><td valign='top'><small>47</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line47'><pre> <span class="ident">project</span> <span class="punct">=</span> <span class="ident">directory</span> <span class="punct">?</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Project</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">directory</span><span class="punct">,</span> <span class="ident">name</span><span class="punct">)</span> <span class="punct">:</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Project</span><span class="punct">.</span><span class="ident">new</span><span class="punct">('</span><span class="string">/</span><span class="punct">',</span> <span class="ident">name</span><span class="punct">)</span>
66
+ </pre></a></td></tr><tr><td valign='top'><small>48</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line48'><pre> <span class="ident">project</span><span class="punct">.</span><span class="ident">create</span>
67
+ </pre></a></td></tr><tr><td valign='top'><small>49</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line49'><pre> <span class="keyword">end</span>
68
+ </pre></a></td></tr><tr><td valign='top'><small>50</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line50'><pre>
69
+ </pre></a></td></tr><tr><td valign='top'><small>51</small></td><td valign='top'><ul><li>Score of 7.97 &raquo; flog</li></ul></td><td valign='top'><a name='line51'><pre> <span class="keyword">def </span><span class="method">compile</span>
70
+ </pre></a></td></tr><tr><td valign='top'><small>52</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line52'><pre> <span class="ident">project_path</span> <span class="punct">=</span> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">getwd</span> <span class="punct">&lt;&lt;</span> <span class="punct">'</span><span class="string">/</span><span class="punct">'</span>
71
+ </pre></a></td></tr><tr><td valign='top'><small>53</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line53'><pre> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">ninjs.conf was not located in <span class="expr">#{project_path}</span></span><span class="punct">&quot;</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>/ninjs.conf</span><span class="punct">&quot;</span>
72
+ </pre></a></td></tr><tr><td valign='top'><small>54</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line54'><pre> <span class="ident">project</span> <span class="punct">=</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Project</span><span class="punct">.</span><span class="ident">new</span>
73
+ </pre></a></td></tr><tr><td valign='top'><small>55</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line55'><pre> <span class="ident">project</span><span class="punct">.</span><span class="ident">update</span>
74
+ </pre></a></td></tr><tr><td valign='top'><small>56</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line56'><pre> <span class="keyword">end</span>
75
+ </pre></a></td></tr><tr><td valign='top'><small>57</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line57'><pre>
76
+ </pre></a></td></tr><tr><td valign='top'><small>58</small></td><td valign='top'><ul><li>Score of 1.20 &raquo; flog</li></ul></td><td valign='top'><a name='line58'><pre> <span class="keyword">def </span><span class="method">import</span><span class="punct">(</span><span class="ident">package</span><span class="punct">)</span>
77
+ </pre></a></td></tr><tr><td valign='top'><small>59</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line59'><pre> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">PackageManager</span><span class="punct">.</span><span class="ident">import</span><span class="punct">(</span><span class="ident">package</span><span class="punct">)</span>
78
+ </pre></a></td></tr><tr><td valign='top'><small>60</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line60'><pre> <span class="keyword">end</span>
79
+ </pre></a></td></tr><tr><td valign='top'><small>61</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line61'><pre>
80
+ </pre></a></td></tr><tr><td valign='top'><small>62</small></td><td valign='top'><ul><li>Score of 1.20 &raquo; flog</li><li>Method "help" has 23 lines. It should have 20 or less. &raquo; roodi</li></ul></td><td valign='top'><a name='line62'><pre> <span class="keyword">def </span><span class="method">help</span>
81
+ </pre></a></td></tr><tr><td valign='top'><small>63</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line63'><pre> <span class="ident">puts</span> <span class="punct">&lt;&lt;-</span><span class="constant">DOC</span><span class="string"><span class="normal">
82
+ </span></span></pre></a></td></tr><tr><td valign='top'><small>64</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line64'><pre>
83
+ </pre></a></td></tr><tr><td valign='top'><small>65</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line65'><pre><span class="constant">Description</span><span class="punct">:</span>
84
+ </pre></a></td></tr><tr><td valign='top'><small>66</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line66'><pre><span class="constant">The</span> <span class="ident">ninjs</span> <span class="ident">command</span> <span class="ident">line</span> <span class="ident">tool</span> <span class="ident">will</span> <span class="ident">compile</span> <span class="ident">your</span> <span class="ident">ninjs</span> <span class="ident">application</span> <span class="ident">into</span> <span class="ident">modules</span><span class="punct">.</span>
85
+ </pre></a></td></tr><tr><td valign='top'><small>67</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line67'><pre><span class="constant">To</span> <span class="ident">compile</span> <span class="ident">your</span> <span class="ident">ninjs</span> <span class="ident">application</span> <span class="ident">into</span> <span class="keyword">module </span><span class="module">files:</span>
86
+ </pre></a></td></tr><tr><td valign='top'><small>68</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line68'><pre>
87
+ </pre></a></td></tr><tr><td valign='top'><small>69</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line69'><pre><span class="constant">Usage</span><span class="punct">:</span> <span class="ident">ninjs</span> <span class="punct">[</span><span class="ident">action</span><span class="punct">]</span> <span class="punct">[</span><span class="ident">options</span><span class="punct">]</span>
88
+ </pre></a></td></tr><tr><td valign='top'><small>70</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line70'><pre>
89
+ </pre></a></td></tr><tr><td valign='top'><small>71</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line71'><pre><span class="constant">Actions</span><span class="punct">:</span>
90
+ </pre></a></td></tr><tr><td valign='top'><small>72</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line72'><pre> <span class="ident">compile</span> <span class="constant">Compiles</span> <span class="ident">the</span> <span class="ident">ninjs</span> <span class="ident">project</span> <span class="keyword">in</span> <span class="ident">the</span> <span class="ident">current</span> <span class="ident">working</span> <span class="ident">directory</span>
91
+ </pre></a></td></tr><tr><td valign='top'><small>73</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line73'><pre> <span class="ident">watch</span> <span class="constant">Watches</span> <span class="ident">the</span> <span class="ident">current</span> <span class="ident">working</span> <span class="ident">directory</span> <span class="keyword">for</span>
92
+ </pre></a></td></tr><tr><td valign='top'><small>74</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line74'><pre> <span class="ident">file</span> <span class="ident">changes</span> <span class="keyword">and</span> <span class="ident">compiles</span> <span class="keyword">when</span> <span class="ident">files</span> <span class="ident">change</span>
93
+ </pre></a></td></tr><tr><td valign='top'><small>75</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line75'><pre> <span class="ident">create</span> <span class="constant">Generates</span> <span class="ident">ninjs</span> <span class="ident">application</span> <span class="ident">architecture</span> <span class="keyword">and</span> <span class="ident">files</span>
94
+ </pre></a></td></tr><tr><td valign='top'><small>76</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line76'><pre> <span class="constant">Options</span><span class="punct">:</span>
95
+ </pre></a></td></tr><tr><td valign='top'><small>77</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line77'><pre> <span class="punct">-</span><span class="ident">p</span><span class="punct">,</span> <span class="punct">--</span><span class="ident">directory</span> <span class="constant">Optional</span> <span class="ident">install</span> <span class="ident">directory</span> <span class="keyword">for</span> <span class="ident">a</span> <span class="ident">new</span> <span class="ident">ninjs</span> <span class="ident">project</span>
96
+ </pre></a></td></tr><tr><td valign='top'><small>78</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line78'><pre> <span class="punct">(</span><span class="ident">creates</span> <span class="ident">the</span> <span class="ident">folder</span> <span class="keyword">if</span> <span class="ident">it</span> <span class="ident">does</span> <span class="keyword">not</span> <span class="ident">exist</span><span class="punct">)</span>
97
+ </pre></a></td></tr><tr><td valign='top'><small>79</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line79'><pre>
98
+ </pre></a></td></tr><tr><td valign='top'><small>80</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line80'><pre><span class="constant">Example</span><span class="punct">:</span>
99
+ </pre></a></td></tr><tr><td valign='top'><small>81</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line81'><pre> <span class="ident">ninjs</span> <span class="ident">create</span> <span class="constant">MyApplication</span>
100
+ </pre></a></td></tr><tr><td valign='top'><small>82</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line82'><pre> <span class="ident">ninjs</span> <span class="ident">watch</span>
101
+ </pre></a></td></tr><tr><td valign='top'><small>83</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line83'><pre> <span class="constant">DOC</span>
102
+ </pre></a></td></tr><tr><td valign='top'><small>84</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line84'><pre> <span class="keyword">end</span>
103
+ </pre></a></td></tr><tr><td valign='top'><small>85</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line85'><pre>
104
+ </pre></a></td></tr><tr><td valign='top'><small>86</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line86'><pre> <span class="keyword">def </span><span class="method">generate</span><span class="punct">(</span><span class="ident">object</span><span class="punct">,</span> <span class="ident">name</span><span class="punct">,</span> <span class="ident">create_elements</span> <span class="punct">=</span> <span class="constant">false</span><span class="punct">,</span> <span class="ident">create_models</span> <span class="punct">=</span> <span class="constant">false</span><span class="punct">,</span> <span class="ident">elements</span> <span class="punct">=</span> <span class="constant">false</span><span class="punct">,</span> <span class="ident">models</span> <span class="punct">=</span> <span class="constant">false</span><span class="punct">)</span>
105
+ </pre></a></td></tr><tr><td valign='top'><small>87</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line87'><pre> <span class="keyword">begin</span>
106
+ </pre></a></td></tr><tr><td valign='top'><small>88</small></td><td valign='top'><ul><li>Score of 142.79 &raquo; flog</li><li>Method name "generate" cyclomatic complexity is 11. It should be 8 or less. &raquo; roodi</li><li>Method "generate" has 27 lines. It should have 20 or less. &raquo; roodi</li><li>Method name "generate" has 6 parameters. It should have 5 or less. &raquo; roodi</li></ul></td><td valign='top'><a name='line88'><pre> <span class="ident">project_path</span> <span class="punct">=</span> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">getwd</span> <span class="punct">&lt;&lt;</span> <span class="punct">'</span><span class="string">/</span><span class="punct">'</span>
107
+ </pre></a></td></tr><tr><td valign='top'><small>89</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line89'><pre> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">ninjs.conf was not located in <span class="expr">#{project_path}</span></span><span class="punct">&quot;</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>ninjs.conf</span><span class="punct">&quot;</span>
108
+ </pre></a></td></tr><tr><td valign='top'><small>90</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line90'><pre> <span class="ident">project</span> <span class="punct">=</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Project</span><span class="punct">.</span><span class="ident">new</span>
109
+ </pre></a></td></tr><tr><td valign='top'><small>91</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line91'><pre> <span class="keyword">if</span> <span class="ident">object</span> <span class="punct">===</span> <span class="punct">'</span><span class="string">module</span><span class="punct">'</span>
110
+ </pre></a></td></tr><tr><td valign='top'><small>92</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line92'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>modules/<span class="expr">#{name.downcase}</span>.module.js</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">w</span><span class="punct">&quot;</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
111
+ </pre></a></td></tr><tr><td valign='top'><small>93</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line93'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="ident">project</span><span class="punct">.</span><span class="ident">config</span><span class="punct">.</span><span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.add_module('</span><span class="punct">&quot;</span> <span class="punct">+</span> <span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">');<span class="escape">\n\n</span></span><span class="punct">&quot;</span>
112
+ </pre></a></td></tr><tr><td valign='top'><small>94</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line94'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">'</span><span class="string">//= require &quot;../elements/</span><span class="punct">'</span> <span class="punct">+</span> <span class="ident">name</span><span class="punct">.</span><span class="ident">downcase</span> <span class="punct">+</span> <span class="punct">'</span><span class="string">.elements.js&quot;</span><span class="punct">'</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n\n</span></span><span class="punct">&quot;</span> <span class="keyword">if</span> <span class="ident">elements</span>
113
+ </pre></a></td></tr><tr><td valign='top'><small>95</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line95'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">'</span><span class="string">//= require &quot;../models/</span><span class="punct">'</span> <span class="punct">+</span> <span class="ident">name</span><span class="punct">.</span><span class="ident">downcase</span> <span class="punct">+</span> <span class="punct">'</span><span class="string">.model.js&quot;</span><span class="punct">'</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n\n</span></span><span class="punct">&quot;</span> <span class="keyword">if</span> <span class="ident">models</span>
114
+ </pre></a></td></tr><tr><td valign='top'><small>96</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line96'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="ident">project</span><span class="punct">.</span><span class="ident">config</span><span class="punct">.</span><span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.</span><span class="punct">&quot;</span> <span class="punct">+</span> <span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.actions = function() {<span class="escape">\n\n</span>}<span class="escape">\n\n</span></span><span class="punct">&quot;</span>
115
+ </pre></a></td></tr><tr><td valign='top'><small>97</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line97'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="ident">project</span><span class="punct">.</span><span class="ident">config</span><span class="punct">.</span><span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.</span><span class="punct">&quot;</span> <span class="punct">+</span> <span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.run();</span><span class="punct">&quot;</span>
116
+ </pre></a></td></tr><tr><td valign='top'><small>98</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line98'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">+++ created <span class="expr">#{name.downcase}</span>.module.js</span><span class="punct">&quot;</span>
117
+ </pre></a></td></tr><tr><td valign='top'><small>99</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line99'><pre> <span class="keyword">end</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>modules/<span class="expr">#{name.downcase}</span>.module.js</span><span class="punct">&quot;</span>
118
+ </pre></a></td></tr><tr><td valign='top'><small>100</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line100'><pre> <span class="keyword">elsif</span> <span class="ident">object</span> <span class="punct">===</span> <span class="punct">'</span><span class="string">elements</span><span class="punct">'</span>
119
+ </pre></a></td></tr><tr><td valign='top'><small>101</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line101'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span><span class="punct">(&quot;</span><span class="string"><span class="expr">#{project_path}</span>elements/<span class="expr">#{name.downcase}</span></span><span class="punct">&quot;</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.elements.js</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">w</span><span class="punct">&quot;)</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
120
+ </pre></a></td></tr><tr><td valign='top'><small>102</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line102'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="ident">project</span><span class="punct">.</span><span class="ident">config</span><span class="punct">.</span><span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.</span><span class="punct">&quot;</span> <span class="punct">+</span> <span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.elements(function({<span class="escape">\n\n</span>}));</span><span class="punct">&quot;</span>
121
+ </pre></a></td></tr><tr><td valign='top'><small>103</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line103'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">+++ created <span class="expr">#{name.downcase}</span>.elements.js</span><span class="punct">&quot;</span>
122
+ </pre></a></td></tr><tr><td valign='top'><small>104</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line104'><pre> <span class="keyword">end</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>elements/<span class="expr">#{name.downcase}</span>.elements.js</span><span class="punct">&quot;</span>
123
+ </pre></a></td></tr><tr><td valign='top'><small>105</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line105'><pre> <span class="keyword">elsif</span> <span class="ident">object</span> <span class="punct">===</span> <span class="punct">'</span><span class="string">model</span><span class="punct">'</span>
124
+ </pre></a></td></tr><tr><td valign='top'><small>106</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line106'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>models/<span class="expr">#{name.downcase}</span>.model.js</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">w</span><span class="punct">&quot;</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
125
+ </pre></a></td></tr><tr><td valign='top'><small>107</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line107'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="ident">project</span><span class="punct">.</span><span class="ident">config</span><span class="punct">.</span><span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.</span><span class="punct">&quot;</span> <span class="punct">+</span> <span class="ident">name</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">.set_data({});</span><span class="punct">&quot;</span>
126
+ </pre></a></td></tr><tr><td valign='top'><small>108</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line108'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">+++ created <span class="expr">#{name.downcase}</span>.model.js</span><span class="punct">&quot;</span>
127
+ </pre></a></td></tr><tr><td valign='top'><small>109</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line109'><pre> <span class="keyword">end</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{project_path}</span>models/<span class="expr">#{name.downcase}</span>.model.js</span><span class="punct">&quot;</span>
128
+ </pre></a></td></tr><tr><td valign='top'><small>110</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line110'><pre> <span class="keyword">end</span>
129
+ </pre></a></td></tr><tr><td valign='top'><small>111</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line111'><pre> <span class="keyword">rescue</span>
130
+ </pre></a></td></tr><tr><td valign='top'><small>112</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line112'><pre> <span class="comment"># TODO rescue this</span>
131
+ </pre></a></td></tr><tr><td valign='top'><small>113</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line113'><pre> <span class="keyword">end</span>
132
+ </pre></a></td></tr><tr><td valign='top'><small>114</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line114'><pre> <span class="keyword">end</span>
133
+ </pre></a></td></tr><tr><td valign='top'><small>115</small></td><td valign='top'><ul><li>Rescue block should not be empty. &raquo; roodi</li></ul></td><td valign='top'><a name='line115'><pre>
134
+ </pre></a></td></tr><tr><td valign='top'><small>116</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line116'><pre> <span class="ident">module_function</span> <span class="symbol">:create</span><span class="punct">,</span> <span class="symbol">:watch</span><span class="punct">,</span> <span class="symbol">:compile</span><span class="punct">,</span> <span class="symbol">:help</span><span class="punct">,</span> <span class="symbol">:import</span><span class="punct">,</span> <span class="symbol">:generate</span>
135
+ </pre></a></td></tr><tr><td valign='top'><small>117</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line117'><pre> <span class="keyword">end</span>
136
+ </pre></a></td></tr><tr><td valign='top'><small>118</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line118'><pre><span class="keyword">end</span>
137
+ </pre></a></td></tr><table></body></html>
@@ -0,0 +1,107 @@
1
+ <html><head><style>table { background: #fff; color: #000; }
2
+ .ruby .normal { color: #000; }
3
+ .ruby .comment { color: #005; font-style: italic; }
4
+ .ruby .keyword { color: #A44; font-weight: bold; }
5
+ .ruby .method { color: #44f; }
6
+ .ruby .class { color: #b1713d; }
7
+ .ruby .module { color: #050; }
8
+ .ruby .punct { color: #668; font-weight: bold; }
9
+ .ruby .symbol { color: #00f; }
10
+ .ruby .string { color: #4a4; }
11
+ .ruby .char { color: #F07; }
12
+ .ruby .ident { color: #000; }
13
+ .ruby .constant { color: #b1713d; }
14
+ .ruby .regex { color: #B66; background: #FEF; }
15
+ .ruby .number { color: #F99; }
16
+ .ruby .attribute { color: #f84; }
17
+ .ruby .global { color: #7FB; }
18
+ .ruby .expr { color: #227; }
19
+ .ruby .escape { color: #277; }</style></head><body><table cellpadding='0' cellspacing='0' class='ruby'><tr><td valign='top'><small>1</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line1'><pre><span class="keyword">module </span><span class="module">Ninjs</span>
20
+ </pre></a></td></tr><tr><td valign='top'><small>2</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line2'><pre> <span class="keyword">class </span><span class="class">Configuration</span>
21
+ </pre></a></td></tr><tr><td valign='top'><small>3</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line3'><pre>
22
+ </pre></a></td></tr><tr><td valign='top'><small>4</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line4'><pre> <span class="ident">attr_reader</span> <span class="symbol">:name</span><span class="punct">,</span>
23
+ </pre></a></td></tr><tr><td valign='top'><small>5</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line5'><pre> <span class="symbol">:app_filename</span><span class="punct">,</span>
24
+ </pre></a></td></tr><tr><td valign='top'><small>6</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line6'><pre> <span class="symbol">:directory</span><span class="punct">,</span>
25
+ </pre></a></td></tr><tr><td valign='top'><small>7</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line7'><pre> <span class="symbol">:output</span><span class="punct">,</span>
26
+ </pre></a></td></tr><tr><td valign='top'><small>8</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line8'><pre> <span class="symbol">:dependencies</span><span class="punct">,</span>
27
+ </pre></a></td></tr><tr><td valign='top'><small>9</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line9'><pre> <span class="symbol">:autoload</span><span class="punct">,</span>
28
+ </pre></a></td></tr><tr><td valign='top'><small>10</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line10'><pre> <span class="symbol">:config_path</span><span class="punct">,</span>
29
+ </pre></a></td></tr><tr><td valign='top'><small>11</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line11'><pre> <span class="symbol">:asset_root</span><span class="punct">,</span>
30
+ </pre></a></td></tr><tr><td valign='top'><small>12</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line12'><pre> <span class="symbol">:base_url</span><span class="punct">,</span>
31
+ </pre></a></td></tr><tr><td valign='top'><small>13</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line13'><pre> <span class="symbol">:test_path</span>
32
+ </pre></a></td></tr><tr><td valign='top'><small>14</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line14'><pre>
33
+ </pre></a></td></tr><tr><td valign='top'><small>15</small></td><td valign='top'><ul><li>Score of 10.94 &raquo; flog</li></ul></td><td valign='top'><a name='line15'><pre> <span class="keyword">def </span><span class="method">initialize</span><span class="punct">(</span><span class="ident">project_path</span><span class="punct">,</span> <span class="ident">name</span> <span class="punct">=</span> <span class="punct">'</span><span class="string"></span><span class="punct">')</span>
34
+ </pre></a></td></tr><tr><td valign='top'><small>16</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line16'><pre> <span class="attribute">@project_path</span> <span class="punct">=</span> <span class="ident">project_path</span>
35
+ </pre></a></td></tr><tr><td valign='top'><small>17</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line17'><pre> <span class="attribute">@defaults</span> <span class="punct">=</span> <span class="punct">{</span>
36
+ </pre></a></td></tr><tr><td valign='top'><small>18</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line18'><pre> <span class="symbol">:name</span> <span class="punct">=&gt;</span> <span class="ident">name</span><span class="punct">,</span>
37
+ </pre></a></td></tr><tr><td valign='top'><small>19</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line19'><pre> <span class="symbol">:app_filename</span> <span class="punct">=&gt;</span> <span class="ident">name</span><span class="punct">.</span><span class="ident">gsub</span><span class="punct">(/</span><span class="regex"><span class="escape">\s</span>|<span class="escape">\-</span>|<span class="escape">\.</span></span><span class="punct">/,</span> <span class="punct">'</span><span class="string"></span><span class="punct">').</span><span class="ident">downcase</span><span class="punct">,</span>
38
+ </pre></a></td></tr><tr><td valign='top'><small>20</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line20'><pre> <span class="symbol">:asset_root</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">../</span><span class="punct">',</span>
39
+ </pre></a></td></tr><tr><td valign='top'><small>21</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line21'><pre> <span class="symbol">:output</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">expanded</span><span class="punct">',</span>
40
+ </pre></a></td></tr><tr><td valign='top'><small>22</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line22'><pre> <span class="symbol">:dependencies</span> <span class="punct">=&gt;</span> <span class="punct">['</span><span class="string">&lt;jquery/latest&gt;</span><span class="punct">'],</span>
41
+ </pre></a></td></tr><tr><td valign='top'><small>23</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line23'><pre> <span class="symbol">:autoload</span> <span class="punct">=&gt;</span> <span class="punct">['</span><span class="string">&lt;ninjs/utilities/all&gt;</span><span class="punct">'],</span>
42
+ </pre></a></td></tr><tr><td valign='top'><small>24</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line24'><pre> <span class="symbol">:base_url</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">http://www.example.com/</span><span class="punct">',</span>
43
+ </pre></a></td></tr><tr><td valign='top'><small>25</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line25'><pre> <span class="symbol">:test_path</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">tests/</span><span class="punct">'</span>
44
+ </pre></a></td></tr><tr><td valign='top'><small>26</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line26'><pre> <span class="punct">}</span>
45
+ </pre></a></td></tr><tr><td valign='top'><small>27</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line27'><pre>
46
+ </pre></a></td></tr><tr><td valign='top'><small>28</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line28'><pre> <span class="attribute">@defaults</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">label</span><span class="punct">,</span> <span class="ident">setting</span><span class="punct">|</span>
47
+ </pre></a></td></tr><tr><td valign='top'><small>29</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line29'><pre> <span class="ident">instance_variable_set</span><span class="punct">(&quot;</span><span class="string">@<span class="expr">#{label}</span></span><span class="punct">&quot;,</span> <span class="ident">setting</span><span class="punct">)</span>
48
+ </pre></a></td></tr><tr><td valign='top'><small>30</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line30'><pre> <span class="keyword">end</span>
49
+ </pre></a></td></tr><tr><td valign='top'><small>31</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line31'><pre>
50
+ </pre></a></td></tr><tr><td valign='top'><small>32</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line32'><pre> <span class="keyword">if</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>ninjs.conf</span><span class="punct">&quot;</span>
51
+ </pre></a></td></tr><tr><td valign='top'><small>33</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line33'><pre> <span class="ident">read</span>
52
+ </pre></a></td></tr><tr><td valign='top'><small>34</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line34'><pre> <span class="keyword">end</span>
53
+ </pre></a></td></tr><tr><td valign='top'><small>35</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line35'><pre> <span class="keyword">end</span>
54
+ </pre></a></td></tr><tr><td valign='top'><small>36</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line36'><pre>
55
+ </pre></a></td></tr><tr><td valign='top'><small>37</small></td><td valign='top'><ul><li>Score of 2.68 &raquo; flog</li></ul></td><td valign='top'><a name='line37'><pre> <span class="keyword">def </span><span class="method">create</span>
56
+ </pre></a></td></tr><tr><td valign='top'><small>38</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line38'><pre> <span class="ident">default_content</span> <span class="punct">=</span> <span class="ident">conf_content</span> <span class="attribute">@defaults</span>
57
+ </pre></a></td></tr><tr><td valign='top'><small>39</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line39'><pre> <span class="ident">create_conf_file</span> <span class="ident">default_content</span>
58
+ </pre></a></td></tr><tr><td valign='top'><small>40</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line40'><pre> <span class="keyword">end</span>
59
+ </pre></a></td></tr><tr><td valign='top'><small>41</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line41'><pre>
60
+ </pre></a></td></tr><tr><td valign='top'><small>42</small></td><td valign='top'><ul><li>Score of 11.26 &raquo; flog</li><li>LowCohesion - doesn't depend on instance state &raquo; reek</li><li>LowCohesion - refers to options more than self &raquo; reek</li></ul></td><td valign='top'><a name='line42'><pre> <span class="keyword">def </span><span class="method">conf_content</span><span class="punct">(</span><span class="ident">options</span><span class="punct">)</span>
61
+ </pre></a></td></tr><tr><td valign='top'><small>43</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line43'><pre> <span class="ident">content</span> <span class="punct">=</span> <span class="punct">&lt;&lt;-</span><span class="constant">CONF</span><span class="string"><span class="normal">
62
+ </span></span></pre></a></td></tr><tr><td valign='top'><small>44</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line44'><pre><span class="ident">name</span><span class="punct">:</span> <span class="comment">#{options[:name]}</span>
63
+ </pre></a></td></tr><tr><td valign='top'><small>45</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line45'><pre><span class="ident">asset_root</span><span class="punct">:</span> <span class="comment">#{options[:asset_root]}</span>
64
+ </pre></a></td></tr><tr><td valign='top'><small>46</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line46'><pre><span class="ident">output</span><span class="punct">:</span> <span class="comment">#{options[:output]}</span>
65
+ </pre></a></td></tr><tr><td valign='top'><small>47</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line47'><pre><span class="ident">dependencies</span><span class="punct">:</span> <span class="punct">[</span><span class="comment">#{options[:dependencies].join(', ')}]</span>
66
+ </pre></a></td></tr><tr><td valign='top'><small>48</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line48'><pre><span class="ident">autoload</span><span class="punct">:</span> <span class="punct">[</span><span class="comment">#{options[:autoload].join(', ')}]</span>
67
+ </pre></a></td></tr><tr><td valign='top'><small>49</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line49'><pre><span class="ident">base_url</span><span class="punct">:</span> <span class="comment">#{options[:base_url]}</span>
68
+ </pre></a></td></tr><tr><td valign='top'><small>50</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line50'><pre><span class="ident">test_path</span><span class="punct">:</span> <span class="comment">#{options[:test_path]}</span>
69
+ </pre></a></td></tr><tr><td valign='top'><small>51</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line51'><pre> <span class="constant">CONF</span>
70
+ </pre></a></td></tr><tr><td valign='top'><small>52</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line52'><pre> <span class="keyword">end</span>
71
+ </pre></a></td></tr><tr><td valign='top'><small>53</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line53'><pre>
72
+ </pre></a></td></tr><tr><td valign='top'><small>54</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line54'><pre> <span class="keyword">def </span><span class="method">create_conf_file</span><span class="punct">(</span><span class="ident">content</span><span class="punct">)</span>
73
+ </pre></a></td></tr><tr><td valign='top'><small>55</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line55'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span><span class="punct">(&quot;</span><span class="string"><span class="expr">#{@project_path}</span>ninjs.conf</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">w+</span><span class="punct">&quot;)</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">conf_file</span><span class="punct">|</span>
74
+ </pre></a></td></tr><tr><td valign='top'><small>56</small></td><td valign='top'><ul><li>Score of 5.49 &raquo; flog</li></ul></td><td valign='top'><a name='line56'><pre> <span class="ident">conf_file</span> <span class="punct">&lt;&lt;</span> <span class="ident">conf_content</span><span class="punct">(</span><span class="attribute">@defaults</span><span class="punct">)</span>
75
+ </pre></a></td></tr><tr><td valign='top'><small>57</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line57'><pre> <span class="keyword">end</span>
76
+ </pre></a></td></tr><tr><td valign='top'><small>58</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line58'><pre>
77
+ </pre></a></td></tr><tr><td valign='top'><small>59</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line59'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">ninjs.conf created</span><span class="punct">&quot;</span>
78
+ </pre></a></td></tr><tr><td valign='top'><small>60</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line60'><pre> <span class="keyword">end</span>
79
+ </pre></a></td></tr><tr><td valign='top'><small>61</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line61'><pre>
80
+ </pre></a></td></tr><tr><td valign='top'><small>62</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line62'><pre> <span class="keyword">def </span><span class="method">update</span>
81
+ </pre></a></td></tr><tr><td valign='top'><small>63</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line63'><pre> <span class="ident">content</span> <span class="punct">=</span> <span class="ident">conf_content</span><span class="punct">({</span>
82
+ </pre></a></td></tr><tr><td valign='top'><small>64</small></td><td valign='top'><ul><li>Score of 2.68 &raquo; flog</li></ul></td><td valign='top'><a name='line64'><pre> <span class="symbol">:name</span> <span class="punct">=&gt;</span> <span class="attribute">@name</span><span class="punct">,</span>
83
+ </pre></a></td></tr><tr><td valign='top'><small>65</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line65'><pre> <span class="symbol">:app_filename</span> <span class="punct">=&gt;</span> <span class="attribute">@app_filename</span><span class="punct">,</span>
84
+ </pre></a></td></tr><tr><td valign='top'><small>66</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line66'><pre> <span class="symbol">:asset_root</span> <span class="punct">=&gt;</span> <span class="attribute">@asset_root</span><span class="punct">,</span>
85
+ </pre></a></td></tr><tr><td valign='top'><small>67</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line67'><pre> <span class="symbol">:output</span> <span class="punct">=&gt;</span> <span class="attribute">@output</span><span class="punct">,</span>
86
+ </pre></a></td></tr><tr><td valign='top'><small>68</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line68'><pre> <span class="symbol">:dependencies</span> <span class="punct">=&gt;</span> <span class="attribute">@dependencies</span><span class="punct">,</span>
87
+ </pre></a></td></tr><tr><td valign='top'><small>69</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line69'><pre> <span class="symbol">:autoload</span> <span class="punct">=&gt;</span> <span class="attribute">@autoload</span><span class="punct">,</span>
88
+ </pre></a></td></tr><tr><td valign='top'><small>70</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line70'><pre> <span class="symbol">:base_url</span> <span class="punct">=&gt;</span> <span class="attribute">@base_url</span><span class="punct">,</span>
89
+ </pre></a></td></tr><tr><td valign='top'><small>71</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line71'><pre> <span class="symbol">:test_path</span> <span class="punct">=&gt;</span> <span class="attribute">@test_path</span>
90
+ </pre></a></td></tr><tr><td valign='top'><small>72</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line72'><pre> <span class="punct">})</span>
91
+ </pre></a></td></tr><tr><td valign='top'><small>73</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line73'><pre> <span class="ident">create_conf_file</span> <span class="ident">content</span>
92
+ </pre></a></td></tr><tr><td valign='top'><small>74</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line74'><pre> <span class="keyword">end</span>
93
+ </pre></a></td></tr><tr><td valign='top'><small>75</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line75'><pre>
94
+ </pre></a></td></tr><tr><td valign='top'><small>76</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line76'><pre> <span class="keyword">def </span><span class="method">read</span>
95
+ </pre></a></td></tr><tr><td valign='top'><small>77</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line77'><pre> <span class="ident">config</span> <span class="punct">=</span> <span class="constant">YAML</span><span class="punct">.</span><span class="ident">load_file</span><span class="punct">(&quot;</span><span class="string"><span class="expr">#{@project_path}</span>ninjs.conf</span><span class="punct">&quot;)</span>
96
+ </pre></a></td></tr><tr><td valign='top'><small>78</small></td><td valign='top'><ul><li>Score of 19.25 &raquo; flog</li><li>Duplication - calls config["name"] twice &raquo; reek</li><li>LongMethod - has approx 9 statements &raquo; reek</li></ul></td><td valign='top'><a name='line78'><pre> <span class="attribute">@asset_root</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">asset_root</span><span class="punct">']</span>
97
+ </pre></a></td></tr><tr><td valign='top'><small>79</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line79'><pre> <span class="attribute">@name</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">name</span><span class="punct">']</span>
98
+ </pre></a></td></tr><tr><td valign='top'><small>80</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line80'><pre> <span class="attribute">@app_filename</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">name</span><span class="punct">'].</span><span class="ident">downcase</span>
99
+ </pre></a></td></tr><tr><td valign='top'><small>81</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line81'><pre> <span class="attribute">@output</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">output</span><span class="punct">']</span>
100
+ </pre></a></td></tr><tr><td valign='top'><small>82</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line82'><pre> <span class="attribute">@dependencies</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">dependencies</span><span class="punct">']</span> <span class="punct">||</span> <span class="constant">Array</span><span class="punct">.</span><span class="ident">new</span>
101
+ </pre></a></td></tr><tr><td valign='top'><small>83</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line83'><pre> <span class="attribute">@autoload</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">autoload</span><span class="punct">']</span> <span class="punct">||</span> <span class="constant">Array</span><span class="punct">.</span><span class="ident">new</span>
102
+ </pre></a></td></tr><tr><td valign='top'><small>84</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line84'><pre> <span class="attribute">@base_url</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">base_url</span><span class="punct">']</span> <span class="punct">||</span> <span class="punct">'</span><span class="string">http://www.example.com/</span><span class="punct">'</span>
103
+ </pre></a></td></tr><tr><td valign='top'><small>85</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line85'><pre> <span class="attribute">@test_path</span> <span class="punct">=</span> <span class="ident">config</span><span class="punct">['</span><span class="string">test_path</span><span class="punct">']</span> <span class="punct">||</span> <span class="punct">'</span><span class="string">tests/</span><span class="punct">'</span>
104
+ </pre></a></td></tr><tr><td valign='top'><small>86</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line86'><pre> <span class="keyword">end</span>
105
+ </pre></a></td></tr><tr><td valign='top'><small>87</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line87'><pre>
106
+ </pre></a></td></tr><tr><td valign='top'><small>88</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line88'><pre> <span class="keyword">end</span>
107
+ </pre></a></td></tr><tr><td valign='top'><small>89</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line89'><pre><span class="keyword">end</span></pre></a></td></tr><table></body></html>
@@ -0,0 +1,34 @@
1
+ <html><head><style>table { background: #fff; color: #000; }
2
+ .ruby .normal { color: #000; }
3
+ .ruby .comment { color: #005; font-style: italic; }
4
+ .ruby .keyword { color: #A44; font-weight: bold; }
5
+ .ruby .method { color: #44f; }
6
+ .ruby .class { color: #b1713d; }
7
+ .ruby .module { color: #050; }
8
+ .ruby .punct { color: #668; font-weight: bold; }
9
+ .ruby .symbol { color: #00f; }
10
+ .ruby .string { color: #4a4; }
11
+ .ruby .char { color: #F07; }
12
+ .ruby .ident { color: #000; }
13
+ .ruby .constant { color: #b1713d; }
14
+ .ruby .regex { color: #B66; background: #FEF; }
15
+ .ruby .number { color: #F99; }
16
+ .ruby .attribute { color: #f84; }
17
+ .ruby .global { color: #7FB; }
18
+ .ruby .expr { color: #227; }
19
+ .ruby .escape { color: #277; }</style></head><body><table cellpadding='0' cellspacing='0' class='ruby'><tr><td valign='top'><small>1</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line1'><pre><span class="keyword">begin</span>
20
+ </pre></a></td></tr><tr><td valign='top'><small>2</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line2'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">yaml</span><span class="punct">'</span>
21
+ </pre></a></td></tr><tr><td valign='top'><small>3</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line3'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">jsmin</span><span class="punct">'</span>
22
+ </pre></a></td></tr><tr><td valign='top'><small>4</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line4'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">tempfile</span><span class="punct">'</span>
23
+ </pre></a></td></tr><tr><td valign='top'><small>5</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line5'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">sprockets</span><span class="punct">'</span>
24
+ </pre></a></td></tr><tr><td valign='top'><small>6</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line6'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">fileutils</span><span class="punct">'</span>
25
+ </pre></a></td></tr><tr><td valign='top'><small>7</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line7'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">time</span><span class="punct">'</span>
26
+ </pre></a></td></tr><tr><td valign='top'><small>8</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line8'><pre><span class="keyword">rescue</span> <span class="constant">LoadError</span>
27
+ </pre></a></td></tr><tr><td valign='top'><small>9</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line9'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">rubygems</span><span class="punct">'</span>
28
+ </pre></a></td></tr><tr><td valign='top'><small>10</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line10'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">yaml</span><span class="punct">'</span>
29
+ </pre></a></td></tr><tr><td valign='top'><small>11</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line11'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">jsmin</span><span class="punct">'</span>
30
+ </pre></a></td></tr><tr><td valign='top'><small>12</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line12'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">tempfile</span><span class="punct">'</span>
31
+ </pre></a></td></tr><tr><td valign='top'><small>13</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line13'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">sprockets</span><span class="punct">'</span>
32
+ </pre></a></td></tr><tr><td valign='top'><small>14</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line14'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">fileutils</span><span class="punct">'</span>
33
+ </pre></a></td></tr><tr><td valign='top'><small>15</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line15'><pre> <span class="ident">require</span> <span class="punct">'</span><span class="string">time</span><span class="punct">'</span>
34
+ </pre></a></td></tr><tr><td valign='top'><small>16</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line16'><pre><span class="keyword">end</span></pre></a></td></tr><table></body></html>
@@ -0,0 +1,34 @@
1
+ <html><head><style>table { background: #fff; color: #000; }
2
+ .ruby .normal { color: #000; }
3
+ .ruby .comment { color: #005; font-style: italic; }
4
+ .ruby .keyword { color: #A44; font-weight: bold; }
5
+ .ruby .method { color: #44f; }
6
+ .ruby .class { color: #b1713d; }
7
+ .ruby .module { color: #050; }
8
+ .ruby .punct { color: #668; font-weight: bold; }
9
+ .ruby .symbol { color: #00f; }
10
+ .ruby .string { color: #4a4; }
11
+ .ruby .char { color: #F07; }
12
+ .ruby .ident { color: #000; }
13
+ .ruby .constant { color: #b1713d; }
14
+ .ruby .regex { color: #B66; background: #FEF; }
15
+ .ruby .number { color: #F99; }
16
+ .ruby .attribute { color: #f84; }
17
+ .ruby .global { color: #7FB; }
18
+ .ruby .expr { color: #227; }
19
+ .ruby .escape { color: #277; }</style></head><body><table cellpadding='0' cellspacing='0' class='ruby'><tr><td valign='top'><small>1</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line1'><pre><span class="keyword">module </span><span class="module">Ninjs</span>
20
+ </pre></a></td></tr><tr><td valign='top'><small>2</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line2'><pre> <span class="keyword">module </span><span class="module">Helpers</span>
21
+ </pre></a></td></tr><tr><td valign='top'><small>3</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line3'><pre>
22
+ </pre></a></td></tr><tr><td valign='top'><small>4</small></td><td valign='top'><ul><li>Score of 7.72 &raquo; flog</li></ul></td><td valign='top'><a name='line4'><pre> <span class="keyword">def </span><span class="method">create_module_filename</span><span class="punct">(</span><span class="ident">module_name</span><span class="punct">)</span>
23
+ </pre></a></td></tr><tr><td valign='top'><small>5</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line5'><pre> <span class="ident">split</span> <span class="punct">=</span> <span class="ident">module_name</span><span class="punct">.</span><span class="ident">split</span><span class="punct">(/</span><span class="regex">[<span class="escape">\.\-\s</span>]</span><span class="punct">/)</span>
24
+ </pre></a></td></tr><tr><td valign='top'><small>6</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line6'><pre> <span class="ident">module_filename</span> <span class="punct">=</span> <span class="constant">String</span><span class="punct">.</span><span class="ident">new</span>
25
+ </pre></a></td></tr><tr><td valign='top'><small>7</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line7'><pre> <span class="ident">split</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">piece</span><span class="punct">|</span>
26
+ </pre></a></td></tr><tr><td valign='top'><small>8</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line8'><pre> <span class="ident">module_filename</span> <span class="punct">&lt;&lt;</span> <span class="ident">piece</span> <span class="keyword">unless</span> <span class="ident">piece</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">^module$|^js$</span><span class="punct">/</span><span class="ident">i</span><span class="punct">)</span>
27
+ </pre></a></td></tr><tr><td valign='top'><small>9</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line9'><pre> <span class="keyword">end</span>
28
+ </pre></a></td></tr><tr><td valign='top'><small>10</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line10'><pre> <span class="ident">module_filename</span>
29
+ </pre></a></td></tr><tr><td valign='top'><small>11</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line11'><pre> <span class="keyword">end</span>
30
+ </pre></a></td></tr><tr><td valign='top'><small>12</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line12'><pre>
31
+ </pre></a></td></tr><tr><td valign='top'><small>13</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line13'><pre> <span class="ident">module_function</span> <span class="symbol">:create_module_filename</span>
32
+ </pre></a></td></tr><tr><td valign='top'><small>14</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line14'><pre>
33
+ </pre></a></td></tr><tr><td valign='top'><small>15</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line15'><pre> <span class="keyword">end</span>
34
+ </pre></a></td></tr><tr><td valign='top'><small>16</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line16'><pre><span class="keyword">end</span></pre></a></td></tr><table></body></html>
@@ -0,0 +1,27 @@
1
+ <html><head><style>table { background: #fff; color: #000; }
2
+ .ruby .normal { color: #000; }
3
+ .ruby .comment { color: #005; font-style: italic; }
4
+ .ruby .keyword { color: #A44; font-weight: bold; }
5
+ .ruby .method { color: #44f; }
6
+ .ruby .class { color: #b1713d; }
7
+ .ruby .module { color: #050; }
8
+ .ruby .punct { color: #668; font-weight: bold; }
9
+ .ruby .symbol { color: #00f; }
10
+ .ruby .string { color: #4a4; }
11
+ .ruby .char { color: #F07; }
12
+ .ruby .ident { color: #000; }
13
+ .ruby .constant { color: #b1713d; }
14
+ .ruby .regex { color: #B66; background: #FEF; }
15
+ .ruby .number { color: #F99; }
16
+ .ruby .attribute { color: #f84; }
17
+ .ruby .global { color: #7FB; }
18
+ .ruby .expr { color: #227; }
19
+ .ruby .escape { color: #277; }</style></head><body><table cellpadding='0' cellspacing='0' class='ruby'><tr><td valign='top'><small>1</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line1'><pre><span class="keyword">module </span><span class="module">Ninjs</span>
20
+ </pre></a></td></tr><tr><td valign='top'><small>2</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line2'><pre> <span class="keyword">module </span><span class="module">Manifest</span>
21
+ </pre></a></td></tr><tr><td valign='top'><small>3</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line3'><pre> <span class="keyword">def </span><span class="method">directories</span>
22
+ </pre></a></td></tr><tr><td valign='top'><small>4</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line4'><pre> <span class="punct">%w(</span><span class="string">application elements lib models modules plugins tests tests/qunit</span><span class="punct">)</span>
23
+ </pre></a></td></tr><tr><td valign='top'><small>5</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line5'><pre> <span class="keyword">end</span>
24
+ </pre></a></td></tr><tr><td valign='top'><small>6</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line6'><pre>
25
+ </pre></a></td></tr><tr><td valign='top'><small>7</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line7'><pre> <span class="ident">module_function</span> <span class="symbol">:directories</span>
26
+ </pre></a></td></tr><tr><td valign='top'><small>8</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line8'><pre> <span class="keyword">end</span>
27
+ </pre></a></td></tr><tr><td valign='top'><small>9</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line9'><pre><span class="keyword">end</span></pre></a></td></tr><table></body></html>
@@ -0,0 +1,236 @@
1
+ <html><head><style>table { background: #fff; color: #000; }
2
+ .ruby .normal { color: #000; }
3
+ .ruby .comment { color: #005; font-style: italic; }
4
+ .ruby .keyword { color: #A44; font-weight: bold; }
5
+ .ruby .method { color: #44f; }
6
+ .ruby .class { color: #b1713d; }
7
+ .ruby .module { color: #050; }
8
+ .ruby .punct { color: #668; font-weight: bold; }
9
+ .ruby .symbol { color: #00f; }
10
+ .ruby .string { color: #4a4; }
11
+ .ruby .char { color: #F07; }
12
+ .ruby .ident { color: #000; }
13
+ .ruby .constant { color: #b1713d; }
14
+ .ruby .regex { color: #B66; background: #FEF; }
15
+ .ruby .number { color: #F99; }
16
+ .ruby .attribute { color: #f84; }
17
+ .ruby .global { color: #7FB; }
18
+ .ruby .expr { color: #227; }
19
+ .ruby .escape { color: #277; }</style></head><body><table cellpadding='0' cellspacing='0' class='ruby'><tr><td valign='top'><small>1</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line1'><pre><span class="keyword">module </span><span class="module">Ninjs</span>
20
+ </pre></a></td></tr><tr><td valign='top'><small>2</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line2'><pre> <span class="keyword">class </span><span class="class">Project</span>
21
+ </pre></a></td></tr><tr><td valign='top'><small>3</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line3'><pre> <span class="ident">attr_reader</span> <span class="symbol">:app_filename</span><span class="punct">,</span>
22
+ </pre></a></td></tr><tr><td valign='top'><small>4</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line4'><pre> <span class="symbol">:project_path</span><span class="punct">,</span>
23
+ </pre></a></td></tr><tr><td valign='top'><small>5</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line5'><pre> <span class="symbol">:config</span>
24
+ </pre></a></td></tr><tr><td valign='top'><small>6</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line6'><pre> <span class="ident">attr_writer</span> <span class="symbol">:config</span><span class="punct">,</span>
25
+ </pre></a></td></tr><tr><td valign='top'><small>7</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line7'><pre> <span class="symbol">:project_path</span><span class="punct">,</span>
26
+ </pre></a></td></tr><tr><td valign='top'><small>8</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line8'><pre> <span class="symbol">:app_filename</span>
27
+ </pre></a></td></tr><tr><td valign='top'><small>9</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line9'><pre>
28
+ </pre></a></td></tr><tr><td valign='top'><small>10</small></td><td valign='top'><ul><li>Score of 9.50 &raquo; flog</li></ul></td><td valign='top'><a name='line10'><pre> <span class="keyword">def </span><span class="method">initialize</span><span class="punct">(</span><span class="ident">sub_dir</span> <span class="punct">=</span> <span class="punct">'</span><span class="string">/</span><span class="punct">',</span> <span class="ident">name</span> <span class="punct">=</span> <span class="punct">'</span><span class="string"></span><span class="punct">')</span>
29
+ </pre></a></td></tr><tr><td valign='top'><small>11</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line11'><pre> <span class="ident">path</span> <span class="punct">=</span> <span class="ident">add_slashes</span> <span class="ident">sub_dir</span>
30
+ </pre></a></td></tr><tr><td valign='top'><small>12</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line12'><pre> <span class="attribute">@project_path</span> <span class="punct">=</span> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">getwd</span> <span class="punct">+</span> <span class="ident">path</span>
31
+ </pre></a></td></tr><tr><td valign='top'><small>13</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line13'><pre> <span class="attribute">@modules</span> <span class="punct">=</span> <span class="constant">Array</span><span class="punct">.</span><span class="ident">new</span>
32
+ </pre></a></td></tr><tr><td valign='top'><small>14</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line14'><pre> <span class="attribute">@config</span> <span class="punct">=</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Configuration</span><span class="punct">.</span><span class="ident">new</span> <span class="attribute">@project_path</span><span class="punct">,</span> <span class="ident">name</span>
33
+ </pre></a></td></tr><tr><td valign='top'><small>15</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line15'><pre> <span class="keyword">end</span>
34
+ </pre></a></td></tr><tr><td valign='top'><small>16</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line16'><pre>
35
+ </pre></a></td></tr><tr><td valign='top'><small>17</small></td><td valign='top'><ul><li>Score of 6.13 &raquo; flog</li><li>LowCohesion - doesn't depend on instance state &raquo; reek</li><li>LowCohesion - refers to dir more than self &raquo; reek</li></ul></td><td valign='top'><a name='line17'><pre> <span class="keyword">def </span><span class="method">add_slashes</span><span class="punct">(</span><span class="ident">dir</span><span class="punct">)</span>
36
+ </pre></a></td></tr><tr><td valign='top'><small>18</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line18'><pre> <span class="ident">dir</span> <span class="punct">+=</span> <span class="punct">'</span><span class="string">/</span><span class="punct">'</span> <span class="keyword">unless</span> <span class="ident">dir</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex"><span class="escape">\/</span>$</span><span class="punct">/)</span>
37
+ </pre></a></td></tr><tr><td valign='top'><small>19</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line19'><pre> <span class="ident">dir</span> <span class="punct">=</span> <span class="punct">'</span><span class="string">/</span><span class="punct">'</span> <span class="punct">&lt;&lt;</span> <span class="ident">dir</span> <span class="keyword">unless</span> <span class="ident">dir</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">^<span class="escape">\/</span></span><span class="punct">/)</span>
38
+ </pre></a></td></tr><tr><td valign='top'><small>20</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line20'><pre> <span class="ident">dir</span>
39
+ </pre></a></td></tr><tr><td valign='top'><small>21</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line21'><pre> <span class="keyword">end</span>
40
+ </pre></a></td></tr><tr><td valign='top'><small>22</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line22'><pre>
41
+ </pre></a></td></tr><tr><td valign='top'><small>23</small></td><td valign='top'><ul><li>Score of 11.00 &raquo; flog</li><li>LongMethod - has approx 8 statements &raquo; reek</li></ul></td><td valign='top'><a name='line23'><pre> <span class="keyword">def </span><span class="method">create</span>
42
+ </pre></a></td></tr><tr><td valign='top'><small>24</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line24'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\e</span>[32m&gt;&gt;&gt;<span class="escape">\e</span>[0m Creating the <span class="expr">#{@config.name}</span> project in <span class="expr">#{@project_path}</span></span><span class="punct">&quot;</span>
43
+ </pre></a></td></tr><tr><td valign='top'><small>25</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line25'><pre> <span class="ident">create_project_structure</span>
44
+ </pre></a></td></tr><tr><td valign='top'><small>26</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line26'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">created the project structure</span><span class="punct">&quot;</span>
45
+ </pre></a></td></tr><tr><td valign='top'><small>27</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line27'><pre> <span class="attribute">@config</span><span class="punct">.</span><span class="ident">create</span>
46
+ </pre></a></td></tr><tr><td valign='top'><small>28</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line28'><pre> <span class="ident">create_ninjs_lib_file</span>
47
+ </pre></a></td></tr><tr><td valign='top'><small>29</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line29'><pre> <span class="ident">create_utility_lib_file</span>
48
+ </pre></a></td></tr><tr><td valign='top'><small>30</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line30'><pre> <span class="ident">create_ninjs_application_file</span>
49
+ </pre></a></td></tr><tr><td valign='top'><small>31</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line31'><pre> <span class="ident">import_test_files</span>
50
+ </pre></a></td></tr><tr><td valign='top'><small>32</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line32'><pre> <span class="keyword">end</span>
51
+ </pre></a></td></tr><tr><td valign='top'><small>33</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line33'><pre>
52
+ </pre></a></td></tr><tr><td valign='top'><small>34</small></td><td valign='top'><ul><li>Score of 12.15 &raquo; flog</li><li>Duplication - calls File.exists?("#{@project_path}#{folder}") twice &raquo; reek</li></ul></td><td valign='top'><a name='line34'><pre> <span class="keyword">def </span><span class="method">create_project_structure</span>
53
+ </pre></a></td></tr><tr><td valign='top'><small>35</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line35'><pre> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">mkdir</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span></span><span class="punct">&quot;</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span></span><span class="punct">&quot;</span>
54
+ </pre></a></td></tr><tr><td valign='top'><small>36</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line36'><pre> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Manifest</span><span class="punct">.</span><span class="ident">directories</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">folder</span><span class="punct">|</span>
55
+ </pre></a></td></tr><tr><td valign='top'><small>37</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line37'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{folder}</span>/ created</span><span class="punct">&quot;</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}#{folder}</span></span><span class="punct">&quot;</span>
56
+ </pre></a></td></tr><tr><td valign='top'><small>38</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line38'><pre> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">mkdir</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}#{folder}</span></span><span class="punct">&quot;</span> <span class="keyword">unless</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}#{folder}</span></span><span class="punct">&quot;</span>
57
+ </pre></a></td></tr><tr><td valign='top'><small>39</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line39'><pre> <span class="keyword">end</span>
58
+ </pre></a></td></tr><tr><td valign='top'><small>40</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line40'><pre> <span class="keyword">end</span>
59
+ </pre></a></td></tr><tr><td valign='top'><small>41</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line41'><pre>
60
+ </pre></a></td></tr><tr><td valign='top'><small>42</small></td><td valign='top'><ul><li>Score of 7.89 &raquo; flog</li></ul></td><td valign='top'><a name='line42'><pre> <span class="keyword">def </span><span class="method">create_ninjs_lib_file</span>
61
+ </pre></a></td></tr><tr><td valign='top'><small>43</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line43'><pre> <span class="ident">ninjs_lib_secretary</span> <span class="punct">=</span> <span class="constant">Sprockets</span><span class="punct">::</span><span class="constant">Secretary</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span>
62
+ </pre></a></td></tr><tr><td valign='top'><small>44</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line44'><pre> <span class="symbol">:root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span></span><span class="punct">&quot;,</span>
63
+ </pre></a></td></tr><tr><td valign='top'><small>45</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line45'><pre> <span class="symbol">:asset_root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@config.asset_root}</span></span><span class="punct">&quot;,</span>
64
+ </pre></a></td></tr><tr><td valign='top'><small>46</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line46'><pre> <span class="symbol">:load_path</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string">repository</span><span class="punct">&quot;],</span>
65
+ </pre></a></td></tr><tr><td valign='top'><small>47</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line47'><pre> <span class="symbol">:source_files</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string">repository/ninjs/core/nin.js</span><span class="punct">&quot;]</span>
66
+ </pre></a></td></tr><tr><td valign='top'><small>48</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line48'><pre> <span class="punct">)</span>
67
+ </pre></a></td></tr><tr><td valign='top'><small>49</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line49'><pre>
68
+ </pre></a></td></tr><tr><td valign='top'><small>50</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line50'><pre> <span class="ident">ninjs_lib_secretary</span><span class="punct">.</span><span class="ident">concatenation</span><span class="punct">.</span><span class="ident">save_to</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>lib/nin.js</span><span class="punct">&quot;</span>
69
+ </pre></a></td></tr><tr><td valign='top'><small>51</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line51'><pre>
70
+ </pre></a></td></tr><tr><td valign='top'><small>52</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line52'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">lib/nin.js created</span><span class="punct">&quot;</span>
71
+ </pre></a></td></tr><tr><td valign='top'><small>53</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line53'><pre> <span class="keyword">end</span>
72
+ </pre></a></td></tr><tr><td valign='top'><small>54</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line54'><pre>
73
+ </pre></a></td></tr><tr><td valign='top'><small>55</small></td><td valign='top'><ul><li>Score of 7.89 &raquo; flog</li></ul></td><td valign='top'><a name='line55'><pre> <span class="keyword">def </span><span class="method">create_utility_lib_file</span>
74
+ </pre></a></td></tr><tr><td valign='top'><small>56</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line56'><pre> <span class="ident">utility_lib_secretary</span> <span class="punct">=</span> <span class="constant">Sprockets</span><span class="punct">::</span><span class="constant">Secretary</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span>
75
+ </pre></a></td></tr><tr><td valign='top'><small>57</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line57'><pre> <span class="symbol">:root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span></span><span class="punct">&quot;,</span>
76
+ </pre></a></td></tr><tr><td valign='top'><small>58</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line58'><pre> <span class="symbol">:asset_root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@config.asset_root}</span></span><span class="punct">&quot;,</span>
77
+ </pre></a></td></tr><tr><td valign='top'><small>59</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line59'><pre> <span class="symbol">:load_path</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string">repository</span><span class="punct">&quot;],</span>
78
+ </pre></a></td></tr><tr><td valign='top'><small>60</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line60'><pre> <span class="symbol">:source_files</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string">repository/ninjs/utilities/all.js</span><span class="punct">&quot;]</span>
79
+ </pre></a></td></tr><tr><td valign='top'><small>61</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line61'><pre> <span class="punct">)</span>
80
+ </pre></a></td></tr><tr><td valign='top'><small>62</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line62'><pre>
81
+ </pre></a></td></tr><tr><td valign='top'><small>63</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line63'><pre> <span class="ident">utility_lib_secretary</span><span class="punct">.</span><span class="ident">concatenation</span><span class="punct">.</span><span class="ident">save_to</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>lib/utilities.js</span><span class="punct">&quot;</span>
82
+ </pre></a></td></tr><tr><td valign='top'><small>64</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line64'><pre>
83
+ </pre></a></td></tr><tr><td valign='top'><small>65</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line65'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">lib/utilities.js created</span><span class="punct">&quot;</span>
84
+ </pre></a></td></tr><tr><td valign='top'><small>66</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line66'><pre> <span class="keyword">end</span>
85
+ </pre></a></td></tr><tr><td valign='top'><small>67</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line67'><pre>
86
+ </pre></a></td></tr><tr><td valign='top'><small>68</small></td><td valign='top'><ul><li>Score of 20.39 &raquo; flog</li></ul></td><td valign='top'><a name='line68'><pre> <span class="keyword">def </span><span class="method">create_ninjs_application_file</span>
87
+ </pre></a></td></tr><tr><td valign='top'><small>69</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line69'><pre> <span class="ident">filename</span> <span class="punct">=</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>application/<span class="expr">#{@config.app_filename}</span>.js</span><span class="punct">&quot;</span>
88
+ </pre></a></td></tr><tr><td valign='top'><small>70</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line70'><pre>
89
+ </pre></a></td></tr><tr><td valign='top'><small>71</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line71'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span><span class="punct">(</span><span class="ident">filename</span><span class="punct">,</span> <span class="punct">&quot;</span><span class="string">w+</span><span class="punct">&quot;)</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
90
+ </pre></a></td></tr><tr><td valign='top'><small>72</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line72'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string">//-- Ninjs <span class="expr">#{Time.now.to_s}</span> --//<span class="escape">\n</span></span><span class="punct">&quot;</span>
91
+ </pre></a></td></tr><tr><td valign='top'><small>73</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line73'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span><span class="punct">(&quot;</span><span class="string"><span class="expr">#{@project_path}</span>lib/nin.js</span><span class="punct">&quot;,</span> <span class="punct">'</span><span class="string">r</span><span class="punct">').</span><span class="ident">readlines</span><span class="punct">.</span><span class="ident">join</span><span class="punct">('</span><span class="string"></span><span class="punct">')</span>
92
+ </pre></a></td></tr><tr><td valign='top'><small>74</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line74'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n</span>var <span class="expr">#{@config.name}</span> = new NinjsApplication('<span class="expr">#{@config.base_url}</span>', '<span class="expr">#{@config.test_path}</span>');</span><span class="punct">&quot;</span>
93
+ </pre></a></td></tr><tr><td valign='top'><small>75</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line75'><pre> <span class="keyword">end</span>
94
+ </pre></a></td></tr><tr><td valign='top'><small>76</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line76'><pre> <span class="keyword">end</span>
95
+ </pre></a></td></tr><tr><td valign='top'><small>77</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line77'><pre>
96
+ </pre></a></td></tr><tr><td valign='top'><small>78</small></td><td valign='top'><ul><li>Score of 13.00 &raquo; flog</li><li>Duplication - calls Ninjs.base_directory 5 times &raquo; reek</li></ul></td><td valign='top'><a name='line78'><pre> <span class="keyword">def </span><span class="method">import_test_files</span>
97
+ </pre></a></td></tr><tr><td valign='top'><small>79</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line79'><pre> <span class="constant">FileUtils</span><span class="punct">.</span><span class="ident">cp</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span>/repository/ninjs/tests/index.html</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>tests</span><span class="punct">&quot;</span>
98
+ </pre></a></td></tr><tr><td valign='top'><small>80</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line80'><pre> <span class="constant">FileUtils</span><span class="punct">.</span><span class="ident">cp</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span>/repository/ninjs/tests/ninjs.test.js</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>tests</span><span class="punct">&quot;</span>
99
+ </pre></a></td></tr><tr><td valign='top'><small>81</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line81'><pre> <span class="constant">FileUtils</span><span class="punct">.</span><span class="ident">cp</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span>/repository/ninjs/tests/ninjs.utilities.test.js</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>tests</span><span class="punct">&quot;</span>
100
+ </pre></a></td></tr><tr><td valign='top'><small>82</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line82'><pre> <span class="constant">FileUtils</span><span class="punct">.</span><span class="ident">cp</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span>/repository/ninjs/tests/qunit/qunit.js</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>tests/qunit</span><span class="punct">&quot;</span>
101
+ </pre></a></td></tr><tr><td valign='top'><small>83</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line83'><pre> <span class="constant">FileUtils</span><span class="punct">.</span><span class="ident">cp</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span>/repository/ninjs/tests/qunit/qunit.css</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>tests/qunit</span><span class="punct">&quot;</span>
102
+ </pre></a></td></tr><tr><td valign='top'><small>84</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line84'><pre> <span class="keyword">end</span>
103
+ </pre></a></td></tr><tr><td valign='top'><small>85</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line85'><pre>
104
+ </pre></a></td></tr><tr><td valign='top'><small>86</small></td><td valign='top'><ul><li>Score of 9.20 &raquo; flog</li><li>LongMethod - has approx 6 statements &raquo; reek</li></ul></td><td valign='top'><a name='line86'><pre> <span class="keyword">def </span><span class="method">update</span>
105
+ </pre></a></td></tr><tr><td valign='top'><small>87</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line87'><pre> <span class="ident">get_updated_modules</span>
106
+ </pre></a></td></tr><tr><td valign='top'><small>88</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line88'><pre> <span class="ident">compile_modules</span>
107
+ </pre></a></td></tr><tr><td valign='top'><small>89</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line89'><pre> <span class="ident">update_application_file</span>
108
+ </pre></a></td></tr><tr><td valign='top'><small>90</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line90'><pre> <span class="ident">compress_application</span> <span class="keyword">if</span> <span class="attribute">@config</span><span class="punct">.</span><span class="ident">output</span> <span class="punct">==</span> <span class="punct">'</span><span class="string">compressed</span><span class="punct">'</span>
109
+ </pre></a></td></tr><tr><td valign='top'><small>91</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line91'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\e</span>[32m&gt;&gt;&gt;<span class="escape">\e</span>[0m application updated</span><span class="punct">&quot;</span> <span class="keyword">unless</span> <span class="attribute">@errors</span>
110
+ </pre></a></td></tr><tr><td valign='top'><small>92</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line92'><pre> <span class="attribute">@errors</span> <span class="punct">=</span> <span class="constant">false</span>
111
+ </pre></a></td></tr><tr><td valign='top'><small>93</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line93'><pre> <span class="keyword">end</span>
112
+ </pre></a></td></tr><tr><td valign='top'><small>94</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line94'><pre>
113
+ </pre></a></td></tr><tr><td valign='top'><small>95</small></td><td valign='top'><ul><li>Score of 7.40 &raquo; flog</li></ul></td><td valign='top'><a name='line95'><pre> <span class="keyword">def </span><span class="method">get_directory_script_files</span>
114
+ </pre></a></td></tr><tr><td valign='top'><small>96</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line96'><pre> <span class="ident">script_files</span> <span class="punct">=</span> <span class="constant">Array</span><span class="punct">.</span><span class="ident">new</span>
115
+ </pre></a></td></tr><tr><td valign='top'><small>97</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line97'><pre> <span class="constant">Dir</span><span class="punct">[&quot;</span><span class="string"><span class="expr">#{@project_path}</span>**/*.js</span><span class="punct">&quot;].</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
116
+ </pre></a></td></tr><tr><td valign='top'><small>98</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line98'><pre> <span class="ident">script_files</span> <span class="punct">&lt;&lt;</span> <span class="ident">file</span> <span class="keyword">unless</span> <span class="ident">file</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">application<span class="escape">\/</span>|tests<span class="escape">\/</span></span><span class="punct">/)</span>
117
+ </pre></a></td></tr><tr><td valign='top'><small>99</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line99'><pre> <span class="keyword">end</span>
118
+ </pre></a></td></tr><tr><td valign='top'><small>100</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line100'><pre> <span class="keyword">end</span>
119
+ </pre></a></td></tr><tr><td valign='top'><small>101</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line101'><pre>
120
+ </pre></a></td></tr><tr><td valign='top'><small>102</small></td><td valign='top'><ul><li>Score of 7.97 &raquo; flog</li><li>LowCohesion - doesn't depend on instance state &raquo; reek</li><li>LowCohesion - refers to files more than self &raquo; reek</li><li>LowCohesion - refers to timestamped_files more than self &raquo; reek</li></ul></td><td valign='top'><a name='line102'><pre> <span class="keyword">def </span><span class="method">get_files_timestamps</span><span class="punct">(</span><span class="ident">files</span><span class="punct">)</span>
121
+ </pre></a></td></tr><tr><td valign='top'><small>103</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line103'><pre> <span class="ident">timestamped_files</span> <span class="punct">=</span> <span class="constant">Hash</span><span class="punct">.</span><span class="ident">new</span>
122
+ </pre></a></td></tr><tr><td valign='top'><small>104</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line104'><pre> <span class="ident">files</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
123
+ </pre></a></td></tr><tr><td valign='top'><small>105</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line105'><pre> <span class="ident">timestamped_files</span><span class="punct">[&quot;</span><span class="string"><span class="expr">#{file}</span></span><span class="punct">&quot;]</span> <span class="punct">=</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">file</span><span class="punct">).</span><span class="ident">mtime</span><span class="punct">.</span><span class="ident">to_s</span>
124
+ </pre></a></td></tr><tr><td valign='top'><small>106</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line106'><pre> <span class="keyword">end</span>
125
+ </pre></a></td></tr><tr><td valign='top'><small>107</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line107'><pre> <span class="ident">timestamped_files</span>
126
+ </pre></a></td></tr><tr><td valign='top'><small>108</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line108'><pre> <span class="keyword">end</span>
127
+ </pre></a></td></tr><tr><td valign='top'><small>109</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line109'><pre>
128
+ </pre></a></td></tr><tr><td valign='top'><small>110</small></td><td valign='top'><ul><li>Score of 10.77 &raquo; flog</li></ul></td><td valign='top'><a name='line110'><pre> <span class="keyword">def </span><span class="method">get_updated_modules</span>
129
+ </pre></a></td></tr><tr><td valign='top'><small>111</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line111'><pre> <span class="comment"># TODO actually check the files against a cache</span>
130
+ </pre></a></td></tr><tr><td valign='top'><small>112</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line112'><pre> <span class="attribute">@modules</span> <span class="punct">=</span> <span class="constant">Array</span><span class="punct">.</span><span class="ident">new</span>
131
+ </pre></a></td></tr><tr><td valign='top'><small>113</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line113'><pre> <span class="constant">Dir</span><span class="punct">[&quot;</span><span class="string"><span class="expr">#{@project_path}</span>modules/*.js</span><span class="punct">&quot;].</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
132
+ </pre></a></td></tr><tr><td valign='top'><small>114</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line114'><pre> <span class="ident">module_filename</span> <span class="punct">=</span> <span class="ident">file</span><span class="punct">.</span><span class="ident">gsub</span><span class="punct">(</span><span class="attribute">@project_path</span> <span class="punct">+</span> <span class="punct">'</span><span class="string">modules/</span><span class="punct">',</span> <span class="punct">'</span><span class="string"></span><span class="punct">')</span>
133
+ </pre></a></td></tr><tr><td valign='top'><small>115</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line115'><pre> <span class="attribute">@modules</span> <span class="punct">&lt;&lt;</span> <span class="ident">module_filename</span> <span class="keyword">unless</span> <span class="ident">module_filename</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">^_</span><span class="punct">/)</span>
134
+ </pre></a></td></tr><tr><td valign='top'><small>116</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line116'><pre> <span class="keyword">end</span>
135
+ </pre></a></td></tr><tr><td valign='top'><small>117</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line117'><pre> <span class="keyword">end</span>
136
+ </pre></a></td></tr><tr><td valign='top'><small>118</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line118'><pre>
137
+ </pre></a></td></tr><tr><td valign='top'><small>119</small></td><td valign='top'><ul><li>Score of 4.97 &raquo; flog</li></ul></td><td valign='top'><a name='line119'><pre> <span class="keyword">def </span><span class="method">compile_modules</span>
138
+ </pre></a></td></tr><tr><td valign='top'><small>120</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line120'><pre> <span class="attribute">@modules</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">module_file</span><span class="punct">|</span>
139
+ </pre></a></td></tr><tr><td valign='top'><small>121</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line121'><pre> <span class="ident">module_filename</span> <span class="punct">=</span> <span class="constant">Ninjs</span><span class="punct">::</span><span class="constant">Helpers</span><span class="punct">.</span><span class="ident">create_module_filename</span> <span class="ident">module_file</span>
140
+ </pre></a></td></tr><tr><td valign='top'><small>122</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line122'><pre> <span class="ident">create_module_file</span> <span class="ident">module_file</span><span class="punct">,</span> <span class="ident">module_filename</span>
141
+ </pre></a></td></tr><tr><td valign='top'><small>123</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line123'><pre> <span class="keyword">end</span>
142
+ </pre></a></td></tr><tr><td valign='top'><small>124</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line124'><pre> <span class="keyword">end</span>
143
+ </pre></a></td></tr><tr><td valign='top'><small>125</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line125'><pre>
144
+ </pre></a></td></tr><tr><td valign='top'><small>126</small></td><td valign='top'><ul><li>Score of 15.81 &raquo; flog</li><li>LongMethod - has approx 9 statements &raquo; reek</li></ul></td><td valign='top'><a name='line126'><pre> <span class="keyword">def </span><span class="method">create_module_file</span><span class="punct">(</span><span class="ident">module_file</span><span class="punct">,</span> <span class="ident">module_name</span><span class="punct">)</span>
145
+ </pre></a></td></tr><tr><td valign='top'><small>127</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line127'><pre> <span class="keyword">begin</span>
146
+ </pre></a></td></tr><tr><td valign='top'><small>128</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line128'><pre> <span class="ident">module_src</span> <span class="punct">=</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>modules/<span class="expr">#{module_file}</span></span><span class="punct">&quot;</span>
147
+ </pre></a></td></tr><tr><td valign='top'><small>129</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line129'><pre>
148
+ </pre></a></td></tr><tr><td valign='top'><small>130</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line130'><pre> <span class="ident">ninjs_lib_secretary</span> <span class="punct">=</span> <span class="constant">Sprockets</span><span class="punct">::</span><span class="constant">Secretary</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span>
149
+ </pre></a></td></tr><tr><td valign='top'><small>131</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line131'><pre> <span class="symbol">:root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span></span><span class="punct">&quot;,</span>
150
+ </pre></a></td></tr><tr><td valign='top'><small>132</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line132'><pre> <span class="symbol">:asset_root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@config.asset_root}</span></span><span class="punct">&quot;,</span>
151
+ </pre></a></td></tr><tr><td valign='top'><small>133</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line133'><pre> <span class="symbol">:load_path</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string">repository</span><span class="punct">&quot;],</span>
152
+ </pre></a></td></tr><tr><td valign='top'><small>134</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line134'><pre> <span class="symbol">:source_files</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string"><span class="expr">#{module_src}</span></span><span class="punct">&quot;]</span>
153
+ </pre></a></td></tr><tr><td valign='top'><small>135</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line135'><pre> <span class="punct">)</span>
154
+ </pre></a></td></tr><tr><td valign='top'><small>136</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line136'><pre>
155
+ </pre></a></td></tr><tr><td valign='top'><small>137</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line137'><pre> <span class="ident">module_file</span> <span class="punct">=</span> <span class="ident">ninjs_lib_secretary</span><span class="punct">.</span><span class="ident">concatenation</span>
156
+ </pre></a></td></tr><tr><td valign='top'><small>138</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line138'><pre> <span class="ident">message</span> <span class="punct">=</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">exists?</span><span class="punct">(&quot;</span><span class="string"><span class="expr">#{@project_path}</span>application/<span class="expr">#{module_name}</span>.js</span><span class="punct">&quot;)</span> <span class="punct">?</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\e</span>[32m&gt;&gt;&gt;<span class="escape">\e</span>[0m application/<span class="expr">#{module_name}</span>.js updated</span><span class="punct">&quot;</span> <span class="punct">:</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\e</span>[32m&gt;&gt;&gt;<span class="escape">\e</span>[0m application/<span class="expr">#{module_name}</span>.js created</span><span class="punct">&quot;</span>
157
+ </pre></a></td></tr><tr><td valign='top'><small>139</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line139'><pre> <span class="ident">module_file</span><span class="punct">.</span><span class="ident">save_to</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>application/<span class="expr">#{module_name}</span>.js</span><span class="punct">&quot;</span>
158
+ </pre></a></td></tr><tr><td valign='top'><small>140</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line140'><pre> <span class="ident">ninjs_lib_secretary</span><span class="punct">.</span><span class="ident">install_assets</span>
159
+ </pre></a></td></tr><tr><td valign='top'><small>141</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line141'><pre>
160
+ </pre></a></td></tr><tr><td valign='top'><small>142</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line142'><pre> <span class="comment">#puts message</span>
161
+ </pre></a></td></tr><tr><td valign='top'><small>143</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line143'><pre> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">error</span>
162
+ </pre></a></td></tr><tr><td valign='top'><small>144</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line144'><pre> <span class="attribute">@errors</span> <span class="punct">=</span> <span class="constant">true</span>
163
+ </pre></a></td></tr><tr><td valign='top'><small>145</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line145'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">Sprockets error: <span class="expr">#{error.message}</span></span><span class="punct">&quot;</span>
164
+ </pre></a></td></tr><tr><td valign='top'><small>146</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line146'><pre> <span class="keyword">end</span>
165
+ </pre></a></td></tr><tr><td valign='top'><small>147</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line147'><pre> <span class="keyword">end</span>
166
+ </pre></a></td></tr><tr><td valign='top'><small>148</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line148'><pre>
167
+ </pre></a></td></tr><tr><td valign='top'><small>149</small></td><td valign='top'><ul><li>Score of 8.28 &raquo; flog</li><li>LongMethod - has approx 6 statements &raquo; reek</li></ul></td><td valign='top'><a name='line149'><pre> <span class="keyword">def </span><span class="method">update_application_file</span>
168
+ </pre></a></td></tr><tr><td valign='top'><small>150</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line150'><pre> <span class="ident">application_file</span> <span class="punct">=</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@project_path}</span>application/<span class="expr">#{@config.app_filename}</span>.js</span><span class="punct">&quot;</span>
169
+ </pre></a></td></tr><tr><td valign='top'><small>151</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line151'><pre>
170
+ </pre></a></td></tr><tr><td valign='top'><small>152</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line152'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span><span class="punct">(</span><span class="ident">application_file</span><span class="punct">,</span> <span class="punct">&quot;</span><span class="string">w+</span><span class="punct">&quot;)</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span>
171
+ </pre></a></td></tr><tr><td valign='top'><small>153</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line153'><pre> <span class="ident">write_dependencies</span><span class="punct">(</span><span class="ident">file</span><span class="punct">)</span>
172
+ </pre></a></td></tr><tr><td valign='top'><small>154</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line154'><pre> <span class="ident">write_core</span><span class="punct">(</span><span class="ident">file</span><span class="punct">)</span>
173
+ </pre></a></td></tr><tr><td valign='top'><small>155</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line155'><pre> <span class="ident">write_autoload</span><span class="punct">(</span><span class="ident">file</span><span class="punct">)</span>
174
+ </pre></a></td></tr><tr><td valign='top'><small>156</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line156'><pre> <span class="keyword">end</span>
175
+ </pre></a></td></tr><tr><td valign='top'><small>157</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line157'><pre>
176
+ </pre></a></td></tr><tr><td valign='top'><small>158</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line158'><pre> <span class="ident">compile_application_file</span> <span class="ident">application_file</span>
177
+ </pre></a></td></tr><tr><td valign='top'><small>159</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line159'><pre> <span class="keyword">end</span>
178
+ </pre></a></td></tr><tr><td valign='top'><small>160</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line160'><pre>
179
+ </pre></a></td></tr><tr><td valign='top'><small>161</small></td><td valign='top'><ul><li>Score of 10.66 &raquo; flog</li><li>LowCohesion - refers to file more than self &raquo; reek</li></ul></td><td valign='top'><a name='line161'><pre> <span class="keyword">def </span><span class="method">write_dependencies</span><span class="punct">(</span><span class="ident">file</span><span class="punct">)</span>
180
+ </pre></a></td></tr><tr><td valign='top'><small>162</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line162'><pre> <span class="attribute">@config</span><span class="punct">.</span><span class="ident">dependencies</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">dependency</span><span class="punct">|</span>
181
+ </pre></a></td></tr><tr><td valign='top'><small>163</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line163'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string">/*---------- <span class="expr">#{dependency}</span> ----------*/</span><span class="punct">&quot;</span>
182
+ </pre></a></td></tr><tr><td valign='top'><small>164</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line164'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n</span>//= require <span class="expr">#{dependency}</span><span class="escape">\n\n</span></span><span class="punct">&quot;</span> <span class="keyword">if</span> <span class="ident">dependency</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">^<span class="escape">\&lt;</span>.+<span class="escape">\&gt;</span>$</span><span class="punct">/)</span>
183
+ </pre></a></td></tr><tr><td valign='top'><small>165</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line165'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n</span>//= require <span class="escape">\&quot;</span><span class="expr">#{dependency}</span><span class="escape">\&quot;\n\n</span></span><span class="punct">&quot;</span> <span class="keyword">if</span> <span class="ident">dependency</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">^[^<span class="escape">\&lt;</span>].+|[^<span class="escape">\&gt;</span>]$</span><span class="punct">/)</span>
184
+ </pre></a></td></tr><tr><td valign='top'><small>166</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line166'><pre> <span class="keyword">end</span>
185
+ </pre></a></td></tr><tr><td valign='top'><small>167</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line167'><pre> <span class="keyword">end</span>
186
+ </pre></a></td></tr><tr><td valign='top'><small>168</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line168'><pre>
187
+ </pre></a></td></tr><tr><td valign='top'><small>169</small></td><td valign='top'><ul><li>Score of 7.80 &raquo; flog</li></ul></td><td valign='top'><a name='line169'><pre> <span class="keyword">def </span><span class="method">write_core</span><span class="punct">(</span><span class="ident">file</span><span class="punct">)</span>
188
+ </pre></a></td></tr><tr><td valign='top'><small>170</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line170'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string">/*---------- Ninjs core ../lib/nin.js ----------*/<span class="escape">\n</span></span><span class="punct">&quot;</span>
189
+ </pre></a></td></tr><tr><td valign='top'><small>171</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line171'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string">//= require <span class="escape">\&quot;</span>../lib/nin.js<span class="escape">\&quot;\n\n</span></span><span class="punct">&quot;</span>
190
+ </pre></a></td></tr><tr><td valign='top'><small>172</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line172'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n</span>var <span class="expr">#{@config.name}</span> = new NinjsApplication('<span class="expr">#{@config.base_url}</span>', '<span class="expr">#{@config.test_path}</span>');<span class="escape">\n\n</span></span><span class="punct">&quot;</span>
191
+ </pre></a></td></tr><tr><td valign='top'><small>173</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line173'><pre> <span class="keyword">end</span>
192
+ </pre></a></td></tr><tr><td valign='top'><small>174</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line174'><pre>
193
+ </pre></a></td></tr><tr><td valign='top'><small>175</small></td><td valign='top'><ul><li>Score of 10.66 &raquo; flog</li><li>LowCohesion - refers to file more than self &raquo; reek</li></ul></td><td valign='top'><a name='line175'><pre> <span class="keyword">def </span><span class="method">write_autoload</span><span class="punct">(</span><span class="ident">file</span><span class="punct">)</span>
194
+ </pre></a></td></tr><tr><td valign='top'><small>176</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line176'><pre> <span class="attribute">@config</span><span class="punct">.</span><span class="ident">autoload</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">auto_file</span><span class="punct">|</span>
195
+ </pre></a></td></tr><tr><td valign='top'><small>177</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line177'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string">/*---------- Ninjs autoload <span class="expr">#{auto_file}</span> ----------*/</span><span class="punct">&quot;</span>
196
+ </pre></a></td></tr><tr><td valign='top'><small>178</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line178'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n</span>//= require <span class="expr">#{auto_file}</span><span class="escape">\n\n</span></span><span class="punct">&quot;</span> <span class="keyword">if</span> <span class="ident">auto_file</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">^<span class="escape">\&lt;</span>.+<span class="escape">\&gt;</span>$</span><span class="punct">/)</span>
197
+ </pre></a></td></tr><tr><td valign='top'><small>179</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line179'><pre> <span class="ident">file</span> <span class="punct">&lt;&lt;</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\n</span>//= require <span class="escape">\&quot;</span><span class="expr">#{auto_file}</span><span class="escape">\&quot;\n\n</span></span><span class="punct">&quot;</span> <span class="keyword">if</span> <span class="ident">auto_file</span><span class="punct">.</span><span class="ident">match</span><span class="punct">(/</span><span class="regex">^[^<span class="escape">\&lt;</span>].+|[^<span class="escape">\&gt;</span>]$</span><span class="punct">/)</span>
198
+ </pre></a></td></tr><tr><td valign='top'><small>180</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line180'><pre> <span class="keyword">end</span>
199
+ </pre></a></td></tr><tr><td valign='top'><small>181</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line181'><pre> <span class="keyword">end</span>
200
+ </pre></a></td></tr><tr><td valign='top'><small>182</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line182'><pre>
201
+ </pre></a></td></tr><tr><td valign='top'><small>183</small></td><td valign='top'><ul><li>Score of 13.07 &raquo; flog</li><li>LongMethod - has approx 6 statements &raquo; reek</li></ul></td><td valign='top'><a name='line183'><pre> <span class="keyword">def </span><span class="method">compile_application_file</span><span class="punct">(</span><span class="ident">file</span><span class="punct">)</span>
202
+ </pre></a></td></tr><tr><td valign='top'><small>184</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line184'><pre> <span class="keyword">begin</span>
203
+ </pre></a></td></tr><tr><td valign='top'><small>185</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line185'><pre> <span class="ident">ninjs_lib_secretary</span> <span class="punct">=</span> <span class="constant">Sprockets</span><span class="punct">::</span><span class="constant">Secretary</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span>
204
+ </pre></a></td></tr><tr><td valign='top'><small>186</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line186'><pre> <span class="symbol">:root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{Ninjs.base_directory}</span></span><span class="punct">&quot;,</span>
205
+ </pre></a></td></tr><tr><td valign='top'><small>187</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line187'><pre> <span class="symbol">:asset_root</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{@config.asset_root}</span></span><span class="punct">&quot;,</span>
206
+ </pre></a></td></tr><tr><td valign='top'><small>188</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line188'><pre> <span class="symbol">:load_path</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string">repository</span><span class="punct">&quot;],</span>
207
+ </pre></a></td></tr><tr><td valign='top'><small>189</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line189'><pre> <span class="symbol">:source_files</span> <span class="punct">=&gt;</span> <span class="punct">[&quot;</span><span class="string"><span class="expr">#{file}</span></span><span class="punct">&quot;]</span>
208
+ </pre></a></td></tr><tr><td valign='top'><small>190</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line190'><pre> <span class="punct">)</span>
209
+ </pre></a></td></tr><tr><td valign='top'><small>191</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line191'><pre>
210
+ </pre></a></td></tr><tr><td valign='top'><small>192</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line192'><pre> <span class="ident">application_file</span> <span class="punct">=</span> <span class="ident">ninjs_lib_secretary</span><span class="punct">.</span><span class="ident">concatenation</span>
211
+ </pre></a></td></tr><tr><td valign='top'><small>193</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line193'><pre> <span class="ident">ninjs_lib_secretary</span><span class="punct">.</span><span class="ident">install_assets</span>
212
+ </pre></a></td></tr><tr><td valign='top'><small>194</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line194'><pre> <span class="ident">application_file</span><span class="punct">.</span><span class="ident">save_to</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{file}</span></span><span class="punct">&quot;</span>
213
+ </pre></a></td></tr><tr><td valign='top'><small>195</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line195'><pre> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">error</span>
214
+ </pre></a></td></tr><tr><td valign='top'><small>196</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line196'><pre> <span class="attribute">@errors</span> <span class="punct">=</span> <span class="constant">true</span>
215
+ </pre></a></td></tr><tr><td valign='top'><small>197</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line197'><pre> <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="escape">\e</span>[0;31m!!!<span class="escape">\e</span>[0m Sprockets error: <span class="expr">#{error.message}</span></span><span class="punct">&quot;</span>
216
+ </pre></a></td></tr><tr><td valign='top'><small>198</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line198'><pre> <span class="keyword">end</span>
217
+ </pre></a></td></tr><tr><td valign='top'><small>199</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line199'><pre> <span class="keyword">end</span>
218
+ </pre></a></td></tr><tr><td valign='top'><small>200</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line200'><pre>
219
+ </pre></a></td></tr><tr><td valign='top'><small>201</small></td><td valign='top'><ul><li>Score of 18.56 &raquo; flog</li><li>NestedIterators - contains iterators nested 2 deep &raquo; reek</li><li>LongMethod - has approx 7 statements &raquo; reek</li><li>LowCohesion - refers to modules more than self &raquo; reek</li></ul></td><td valign='top'><a name='line201'><pre> <span class="keyword">def </span><span class="method">compress_application</span>
220
+ </pre></a></td></tr><tr><td valign='top'><small>202</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line202'><pre> <span class="ident">application</span> <span class="punct">=</span> <span class="attribute">@project_path</span> <span class="punct">+</span> <span class="punct">'</span><span class="string">application</span><span class="punct">'</span>
221
+ </pre></a></td></tr><tr><td valign='top'><small>203</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line203'><pre> <span class="ident">modules</span> <span class="punct">=</span> <span class="constant">Dir</span><span class="punct">.</span><span class="ident">entries</span><span class="punct">(</span><span class="ident">application</span><span class="punct">)</span>
222
+ </pre></a></td></tr><tr><td valign='top'><small>204</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line204'><pre> <span class="ident">modules</span><span class="punct">.</span><span class="ident">reject!</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">file</span><span class="punct">|</span> <span class="ident">file</span> <span class="punct">=~</span> <span class="punct">/</span><span class="regex">^<span class="escape">\.</span></span><span class="punct">/</span> <span class="punct">}</span>
223
+ </pre></a></td></tr><tr><td valign='top'><small>205</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line205'><pre>
224
+ </pre></a></td></tr><tr><td valign='top'><small>206</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line206'><pre> <span class="ident">modules</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">module_file</span><span class="punct">|</span>
225
+ </pre></a></td></tr><tr><td valign='top'><small>207</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line207'><pre> <span class="ident">full_path</span> <span class="punct">=</span> <span class="ident">application</span> <span class="punct">+</span> <span class="punct">&quot;</span><span class="string">/<span class="expr">#{module_file}</span></span><span class="punct">&quot;</span>
226
+ </pre></a></td></tr><tr><td valign='top'><small>208</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line208'><pre> <span class="ident">uncompressed</span> <span class="punct">=</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span><span class="punct">(</span><span class="ident">full_path</span><span class="punct">,</span> <span class="punct">&quot;</span><span class="string">r</span><span class="punct">&quot;).</span><span class="ident">readlines</span><span class="punct">.</span><span class="ident">join</span><span class="punct">('</span><span class="string"></span><span class="punct">')</span>
227
+ </pre></a></td></tr><tr><td valign='top'><small>209</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line209'><pre> <span class="constant">File</span><span class="punct">.</span><span class="ident">open</span><span class="punct">(</span><span class="ident">full_path</span><span class="punct">,</span> <span class="punct">&quot;</span><span class="string">w+</span><span class="punct">&quot;)</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">module_file</span><span class="punct">|</span>
228
+ </pre></a></td></tr><tr><td valign='top'><small>210</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line210'><pre> <span class="ident">module_file</span> <span class="punct">&lt;&lt;</span> <span class="constant">JSMin</span><span class="punct">.</span><span class="ident">minify</span><span class="punct">(</span><span class="ident">uncompressed</span><span class="punct">)</span>
229
+ </pre></a></td></tr><tr><td valign='top'><small>211</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line211'><pre> <span class="keyword">end</span>
230
+ </pre></a></td></tr><tr><td valign='top'><small>212</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line212'><pre> <span class="keyword">end</span>
231
+ </pre></a></td></tr><tr><td valign='top'><small>213</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line213'><pre> <span class="keyword">end</span>
232
+ </pre></a></td></tr><tr><td valign='top'><small>214</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line214'><pre>
233
+ </pre></a></td></tr><tr><td valign='top'><small>215</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line215'><pre> <span class="keyword">end</span>
234
+ </pre></a></td></tr><tr><td valign='top'><small>216</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line216'><pre> <span class="comment"># class Project</span>
235
+ </pre></a></td></tr><tr><td valign='top'><small>217</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line217'><pre><span class="keyword">end</span>
236
+ </pre></a></td></tr><tr><td valign='top'><small>218</small></td><td valign='top'>&nbsp;</td><td valign='top'><a name='line218'><pre><span class="comment">#module Ninjs</span></pre></a></td></tr><table></body></html>