ninjs 0.16.4 → 0.16.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/.bundle/config +2 -2
  2. data/Gemfile +0 -1
  3. data/Gemfile.lock +0 -2
  4. data/Rakefile +2 -12
  5. data/VERSION +1 -1
  6. data/lib/ninjs.rb +2 -0
  7. data/lib/ninjs/dependencies.rb +0 -2
  8. data/lib/ninjs/project.rb +1 -1
  9. data/lib/sprockets/CHANGELOG +0 -0
  10. data/lib/sprockets/LICENSE +0 -0
  11. data/lib/sprockets/README.markdown +0 -0
  12. data/lib/sprockets/lib/sprockets.rb +0 -0
  13. data/lib/sprockets/lib/sprockets/concatenation.rb +0 -0
  14. data/lib/sprockets/lib/sprockets/environment.rb +0 -0
  15. data/lib/sprockets/lib/sprockets/error.rb +0 -0
  16. data/lib/sprockets/lib/sprockets/pathname.rb +0 -0
  17. data/lib/sprockets/lib/sprockets/preprocessor.rb +0 -0
  18. data/lib/sprockets/lib/sprockets/secretary.rb +0 -0
  19. data/lib/sprockets/lib/sprockets/source_file.rb +0 -0
  20. data/lib/sprockets/lib/sprockets/source_line.rb +0 -0
  21. data/lib/sprockets/lib/sprockets/version.rb +0 -0
  22. data/lib/sprockets/sprockets.gemspec +0 -0
  23. data/lib/sprockets/test/fixtures/assets/images/script_with_assets/one.png +0 -0
  24. data/lib/sprockets/test/fixtures/assets/images/script_with_assets/two.png +0 -0
  25. data/lib/sprockets/test/fixtures/assets/stylesheets/script_with_assets.css +0 -0
  26. data/lib/sprockets/test/fixtures/constants.yml +0 -0
  27. data/lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_ignored_when_strip_comments_is_false.js +0 -0
  28. data/lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_removed_by_default.js +0 -0
  29. data/lib/sprockets/test/fixtures/multiline_comments_should_be_removed_by_default.js +0 -0
  30. data/lib/sprockets/test/fixtures/requiring_a_file_after_it_has_already_been_required_should_do_nothing.js +0 -0
  31. data/lib/sprockets/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js +0 -0
  32. data/lib/sprockets/test/fixtures/requiring_a_single_file_should_replace_the_require_comment_with_the_file_contents.js +0 -0
  33. data/lib/sprockets/test/fixtures/requiring_the_current_file_should_do_nothing.js +0 -0
  34. data/lib/sprockets/test/fixtures/src/constants.yml +0 -0
  35. data/lib/sprockets/test/fixtures/src/foo.js +0 -0
  36. data/lib/sprockets/test/fixtures/src/foo/bar.js +0 -0
  37. data/lib/sprockets/test/fixtures/src/foo/foo.js +0 -0
  38. data/lib/sprockets/test/fixtures/src/script_with_assets.js +0 -0
  39. data/lib/sprockets/test/fixtures/src/script_with_comments.js +0 -0
  40. data/lib/sprockets/test/test_concatenation.rb +0 -0
  41. data/lib/sprockets/test/test_environment.rb +0 -0
  42. data/lib/sprockets/test/test_helper.rb +0 -0
  43. data/lib/sprockets/test/test_pathname.rb +0 -0
  44. data/lib/sprockets/test/test_preprocessor.rb +0 -0
  45. data/lib/sprockets/test/test_secretary.rb +0 -0
  46. data/lib/sprockets/test/test_source_file.rb +0 -0
  47. data/lib/sprockets/test/test_source_line.rb +0 -0
  48. data/ninjs.gemspec +3 -13
  49. data/spec/fixtures/badpattern.module.js +5 -0
  50. data/spec/fixtures/compressed.myapp.js +12 -16
  51. data/spec/fixtures/myapp.js +127 -127
  52. data/spec/project_spec.rb +32 -2
  53. metadata +22 -56
  54. data/lib/sprockets/.gitignore +0 -4
  55. data/lib/sprockets/bin/sprocketize +0 -54
@@ -1,2 +1,2 @@
1
- ---
2
- BUNDLE_DISABLE_SHARED_GEMS: "1"
1
+ --- {}
2
+
data/Gemfile CHANGED
@@ -2,7 +2,6 @@ source "http://rubygems.org"
2
2
 
3
3
  gem "fssm", ">= 0"
4
4
  gem "jsmin", ">= 0"
5
- gem "sprockets", "1.0.2"
6
5
 
7
6
  group :development do
8
7
  gem "shoulda", ">= 0"
@@ -21,7 +21,6 @@ GEM
21
21
  diff-lcs (~> 1.1.2)
22
22
  rspec-mocks (2.6.0)
23
23
  shoulda (2.11.3)
24
- sprockets (1.0.2)
25
24
 
26
25
  PLATFORMS
27
26
  ruby
@@ -35,4 +34,3 @@ DEPENDENCIES
35
34
  rdoc
36
35
  rspec
37
36
  shoulda
38
- sprockets (= 1.0.2)
data/Rakefile CHANGED
@@ -16,17 +16,16 @@ end
16
16
 
17
17
  Jeweler::Tasks.new do |gem|
18
18
  gem.name = "ninjs"
19
- gem.homepage = "http://github.com/textnotspeech/ninjs"
19
+ gem.homepage = "http://github.com/daytonn/ninjs"
20
20
  gem.rubyforge_project = "nowarning"
21
21
  gem.license = "MIT"
22
22
  gem.summary = %Q{ninjs is a command line application to help you write clean, modular javascript applications.}
23
23
  gem.description = %Q{Ninjs is a ruby application and small javascript framework that helps you build clean, modular javascript applications. Ninjs encourages "Good Parts" best practices and the Crockford school Module pattern (http://www.crockford.com/). The ninjs command line application is an automatic compiler, written in ruby, and based on the Sprockets library (http://getsprockets.org/).}
24
24
  gem.email = "daytonn@gmail.com"
25
25
  gem.authors = ["Dayton Nolan"]
26
- gem.add_runtime_dependency 'rubikon'
26
+
27
27
  gem.add_runtime_dependency 'fssm'
28
28
  gem.add_runtime_dependency 'jsmin'
29
- gem.add_runtime_dependency 'sprockets'
30
29
  gem.add_development_dependency 'rspec', '>= 0'
31
30
  end
32
31
 
@@ -52,15 +51,6 @@ RDoc::Task.new do |rdoc|
52
51
  rdoc.rdoc_files.include('lib/**/*.rb')
53
52
  end
54
53
 
55
- namespace :ndoc do
56
- desc "Generate documentation with NaturalDocs"
57
-
58
- task :generate do
59
- output = `ndocs -i /Volumes/Storage/Development/ninjs/repository/ninjs/ -o HTML /Volumes/Storage/Development/ninjs-ghpages/docs -p /Volumes/Storage/Development/ninjs-ghpages/docs` # -s Slick
60
- puts output
61
- end
62
-
63
- end
64
54
  begin
65
55
  require 'jasmine'
66
56
  load 'jasmine/tasks/jasmine.rake'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.16.4
1
+ 0.16.5
@@ -5,6 +5,8 @@ module Ninjs
5
5
  VERSION = File.open("#{BASE_DIR}/VERSION").readlines.join("")
6
6
  end
7
7
 
8
+ require "#{Ninjs::LIB_DIR}/sprockets/lib/sprockets"
9
+
8
10
  %w(dependencies configuration helpers manifest project notification generator command).each do |lib|
9
11
  require "#{Ninjs::LIB_DIR}/ninjs/#{lib}"
10
12
  end
@@ -2,7 +2,6 @@ begin
2
2
  require 'yaml'
3
3
  require 'jsmin'
4
4
  require 'tempfile'
5
- require 'sprockets'
6
5
  require 'fileutils'
7
6
  require 'time'
8
7
  require 'erb'
@@ -11,7 +10,6 @@ rescue LoadError
11
10
  require 'yaml'
12
11
  require 'jsmin'
13
12
  require 'tempfile'
14
- require 'sprockets'
15
13
  require 'fileutils'
16
14
  require 'time'
17
15
  require 'erb'
@@ -168,7 +168,7 @@ module Ninjs
168
168
 
169
169
  def update_application_file
170
170
  application_file = "#{@root}/#{@config.dest_dir}/#{@config.name.downcase}.js"
171
-
171
+ puts application_file
172
172
  File.open(application_file, "w+") do |file|
173
173
  write_dependencies(file)
174
174
  write_core(file)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ninjs"
8
- s.version = "0.16.4"
8
+ s.version = "0.16.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dayton Nolan"]
@@ -37,11 +37,9 @@ Gem::Specification.new do |s|
37
37
  "lib/ninjs/manifest.rb",
38
38
  "lib/ninjs/notification.rb",
39
39
  "lib/ninjs/project.rb",
40
- "lib/sprockets/.gitignore",
41
40
  "lib/sprockets/CHANGELOG",
42
41
  "lib/sprockets/LICENSE",
43
42
  "lib/sprockets/README.markdown",
44
- "lib/sprockets/bin/sprocketize",
45
43
  "lib/sprockets/ext/nph-sprockets.cgi",
46
44
  "lib/sprockets/lib/sprockets.rb",
47
45
  "lib/sprockets/lib/sprockets/concatenation.rb",
@@ -193,6 +191,7 @@ Gem::Specification.new do |s|
193
191
  "spec/dependencies_spec.rb",
194
192
  "spec/fixtures/_global.module.js",
195
193
  "spec/fixtures/autoload.js",
194
+ "spec/fixtures/badpattern.module.js",
196
195
  "spec/fixtures/changed.ninjs.conf",
197
196
  "spec/fixtures/compressed.myapp.js",
198
197
  "spec/fixtures/core.js",
@@ -227,7 +226,7 @@ Gem::Specification.new do |s|
227
226
  "templates/jasmine.yml",
228
227
  "templates/test-index.html"
229
228
  ]
230
- s.homepage = "http://github.com/textnotspeech/ninjs"
229
+ s.homepage = "http://github.com/daytonn/ninjs"
231
230
  s.licenses = ["MIT"]
232
231
  s.require_paths = ["lib"]
233
232
  s.rubyforge_project = "nowarning"
@@ -253,48 +252,39 @@ Gem::Specification.new do |s|
253
252
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
254
253
  s.add_runtime_dependency(%q<fssm>, [">= 0"])
255
254
  s.add_runtime_dependency(%q<jsmin>, [">= 0"])
256
- s.add_runtime_dependency(%q<sprockets>, ["= 1.0.2"])
257
255
  s.add_development_dependency(%q<shoulda>, [">= 0"])
258
256
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
259
257
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
260
258
  s.add_development_dependency(%q<rcov>, [">= 0"])
261
259
  s.add_development_dependency(%q<rspec>, [">= 0"])
262
260
  s.add_development_dependency(%q<rdoc>, [">= 0"])
263
- s.add_runtime_dependency(%q<rubikon>, [">= 0"])
264
261
  s.add_runtime_dependency(%q<fssm>, [">= 0"])
265
262
  s.add_runtime_dependency(%q<jsmin>, [">= 0"])
266
- s.add_runtime_dependency(%q<sprockets>, [">= 0"])
267
263
  s.add_development_dependency(%q<rspec>, [">= 0"])
268
264
  else
269
265
  s.add_dependency(%q<fssm>, [">= 0"])
270
266
  s.add_dependency(%q<jsmin>, [">= 0"])
271
- s.add_dependency(%q<sprockets>, ["= 1.0.2"])
272
267
  s.add_dependency(%q<shoulda>, [">= 0"])
273
268
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
274
269
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
275
270
  s.add_dependency(%q<rcov>, [">= 0"])
276
271
  s.add_dependency(%q<rspec>, [">= 0"])
277
272
  s.add_dependency(%q<rdoc>, [">= 0"])
278
- s.add_dependency(%q<rubikon>, [">= 0"])
279
273
  s.add_dependency(%q<fssm>, [">= 0"])
280
274
  s.add_dependency(%q<jsmin>, [">= 0"])
281
- s.add_dependency(%q<sprockets>, [">= 0"])
282
275
  s.add_dependency(%q<rspec>, [">= 0"])
283
276
  end
284
277
  else
285
278
  s.add_dependency(%q<fssm>, [">= 0"])
286
279
  s.add_dependency(%q<jsmin>, [">= 0"])
287
- s.add_dependency(%q<sprockets>, ["= 1.0.2"])
288
280
  s.add_dependency(%q<shoulda>, [">= 0"])
289
281
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
290
282
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
291
283
  s.add_dependency(%q<rcov>, [">= 0"])
292
284
  s.add_dependency(%q<rspec>, [">= 0"])
293
285
  s.add_dependency(%q<rdoc>, [">= 0"])
294
- s.add_dependency(%q<rubikon>, [">= 0"])
295
286
  s.add_dependency(%q<fssm>, [">= 0"])
296
287
  s.add_dependency(%q<jsmin>, [">= 0"])
297
- s.add_dependency(%q<sprockets>, [">= 0"])
298
288
  s.add_dependency(%q<rspec>, [">= 0"])
299
289
  end
300
290
  end
@@ -0,0 +1,5 @@
1
+ _.templateSettings = {
2
+ evaluate: /<%([\s\S]+?)%>/g,
3
+ interpolate: /<%=([\s\S]+?)%>/g,
4
+ escape: /<%-([\s\S]+?)%>/g
5
+ };
@@ -4,28 +4,24 @@ if(is_undefined(suspect)){throw new SyntaxError("is_typeof(Type, suspect): suspe
4
4
  return(suspect.constructor==type)?true:false;};is_numeric=function(suspect){if(is_typeof(Number,suspect)){return true;}
5
5
  else{var pattern=/^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;return pattern.test(suspect);}};is_string=function(suspect){return is_typeof(String,suspect);};is_array=function(suspect){return is_typeof(Array,suspect);};is_number=function(suspect){return is_typeof(Number,suspect);};is_date=function(suspect){return is_typeof(Date,suspect);};is_bool=function(suspect){return is_typeof(Boolean,suspect);};is_regex=function(suspect){return is_typeof(RegExp,suspect);};is_empty=function(suspect){return suspect.length===0;};is_not_empty=function(suspect){return suspect.length>=1;};unless=function(expression,callback,fallback){if(is_undefined(callback)){throw new SyntaxError("unless(expression, callback[, fallback]): callback is undefined");}
6
6
  if(!!!expression){callback.call(this);}
7
- else{if(is_defined(fallback)){fallback.call(this);}}};var dom=(function(){var userAgent=navigator.userAgent;var browser={agent:userAgent,mozilla:(/mozilla/.test(userAgent.toLowerCase()))&&!(/(compatible|webkit)/.test(userAgent.toLowerCase())),webkit:/webkit/.test(userAgent.toLowerCase()),firefox:/firefox/.test(userAgent.toLowerCase()),chrome:/webkit/.test(userAgent.toLowerCase()),safari:/safari/.test(userAgent.toLowerCase()),opera:/opera/.test(userAgent.toLowerCase()),msie:(/msie/.test(userAgent.toLowerCase()))&&!(/opera/.test(userAgent.toLowerCase()))};var readyBound=false;var isReady=false;var readyList=[];function domReady(){if(!isReady){isReady=true;if(readyList){for(var fn=0;fn<readyList.length;fn++){readyList[fn].call(window,[]);}
8
- readyList=[];}}}
9
- function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}
7
+ else{if(is_defined(fallback)){fallback.call(this);}}};var DomReady=window.DomReady={},userAgent=navigator.userAgent.toLowerCase(),browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:(/msie/.test(userAgent))&&(!/opera/.test(userAgent)),mozilla:(/mozilla/.test(userAgent))&&(!/(compatible|webkit)/.test(userAgent))},readyBound=false,isReady=false,readyList=[];function domReady(){if(!isReady){isReady=true;if(readyList){var length=readyList.length;for(var fn=0;fn<length;fn++){readyList[fn].call(window,[]);}
8
+ readyList=[];}}};function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}
10
9
  else{window.onload=function(){if(oldonload){oldonload();}
11
- func();};}}
12
- function bindReady(){if(readyBound){return;}
10
+ func();}}};function bindReady(){if(readyBound){return;}
13
11
  readyBound=true;if(document.addEventListener&&!browser.opera){document.addEventListener("DOMContentLoaded",domReady,false);}
14
- if(browser.msie&&window==top){(function(){if(isReady){return;}
15
- try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}
16
- domReady();})();}
17
- if(browser.opera){document.addEventListener("DOMContentLoaded",function(){if(isReady){return;}
18
- for(var i=0;i<document.styleSheets.length;i++){if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}
19
- domReady();}},false);}
20
- if(browser.safari){var numStyles;(function(){if(isReady){return;}
21
- if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}
12
+ if(browser.msie&&window==top)(function(){if(isReady)return;try{document.documentElement.doScroll("left");}
13
+ catch(error){setTimeout(arguments.callee,0);return;}
14
+ domReady();})();if(browser.opera){document.addEventListener("DOMContentLoaded",function(){if(isReady)return;for(var i=0;i<document.styleSheets.length;i++)
15
+ if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}
16
+ domReady();},false);}
17
+ if(browser.safari){var numStyles;(function(){if(isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}
22
18
  if(numStyles===undefined){var links=document.getElementsByTagName("link");for(var i=0;i<links.length;i++){if(links[i].getAttribute('rel')=='stylesheet'){numStyles++;}}
23
19
  var styles=document.getElementsByTagName("style");numStyles+=styles.length;}
24
20
  if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}
25
21
  domReady();})();}
26
- addLoadEvent(domReady);}
27
- return{bind:bindReady,is_ready:isReady,ready_list:readyList};})();NinjsDOM=function(){this.cached_selectors={};};NinjsDOM.prototype.ready=function(fn,args){dom.bind();if(dom.is_ready()){fn.call(window,args||[]);}
28
- else{dom.ready_list.push(function(){return fn.call(window,args||[]);});}};dom.bind();NinjsModule=function(name){this.dom=new NinjsDOM(this);this.data={};this.name=name;};NinjsModule.prototype.actions=function(){};NinjsModule.prototype.run=function(){var mod=this;this.dom.ready(function(){mod.execute();});};NinjsModule.prototype.execute=function(){this.actions();};NinjsModule.prototype.elements=function(elements){if(is_undefined(elements)){if(is_typeof(Object,elements)){throw new SyntaxError("NinjsModule.elements(elements): elements is undefined");}
22
+ addLoadEvent(domReady);};DomReady.ready=function(fn,args){bindReady();if(isReady){fn.call(window,[]);}
23
+ else{readyList.push(function(){return fn.call(window,[]);});}};NinjsDOM=function(){this.cached_selectors={};};NinjsDOM.prototype.ready=function(fn,args){bindReady();if(isReady){fn.call(window,args||[]);}
24
+ else{readyList.push(function(){return fn.call(window,args||[]);});}};bindReady();NinjsModule=function(name){this.dom=new NinjsDOM(this);this.data={};this.name=name;};NinjsModule.prototype.actions=function(){};NinjsModule.prototype.run=function(){var mod=this;this.dom.ready(function(){mod.execute();});};NinjsModule.prototype.execute=function(){this.actions();};NinjsModule.prototype.elements=function(elements){if(is_undefined(elements)){if(is_typeof(Object,elements)){throw new SyntaxError("NinjsModule.elements(elements): elements is undefined");}
29
25
  else if(is_string(elements)){throw new SyntaxError("NinjsModule.elements(name): name is undefined");}}
30
26
  if(is_string(elements)){var name=elements;return this.dom.cached_selectors[name];}
31
27
  else{var dom=this.dom;dom.ready(function(){for(var key in elements){if(elements.hasOwnProperty(key)){dom.cached_selectors[key]=elements[key];}}});}};NinjsModule.prototype.set_data=function(key,value){if(is_undefined(key)){throw new SyntaxError('NinjsModule.set_data(key, value): key is undefined');}
@@ -91,146 +91,146 @@ unless = function(expression, callback, fallback) {
91
91
  }
92
92
  }
93
93
  };
94
- var dom = (function() {
95
- var userAgent = navigator.userAgent;
96
- var browser = {
97
- agent: userAgent,
98
- mozilla: (/mozilla/.test(userAgent.toLowerCase())) && !(/(compatible|webkit)/.test(userAgent.toLowerCase())),
99
- webkit: /webkit/.test(userAgent.toLowerCase()),
100
- firefox: /firefox/.test(userAgent.toLowerCase()),
101
- chrome: /webkit/.test(userAgent.toLowerCase()),
102
- safari: /safari/.test(userAgent.toLowerCase()),
103
- opera: /opera/.test(userAgent.toLowerCase()),
104
- msie: (/msie/.test(userAgent.toLowerCase())) && !(/opera/.test( userAgent.toLowerCase() ))
105
- };
106
-
107
- var readyBound = false;
108
- var isReady = false;
109
- var readyList = [];
110
-
111
- function domReady() {
112
- if (!isReady) {
113
- isReady = true;
114
- if (readyList) {
115
- for(var fn = 0; fn < readyList.length; fn++) {
116
- readyList[fn].call(window, []);
117
- }
118
- readyList = [];
119
- }
120
- }
121
- }
122
-
123
- function addLoadEvent(func) {
124
- var oldonload = window.onload;
125
- if (typeof window.onload != 'function') {
126
- window.onload = func;
127
- }
128
- else {
129
- window.onload = function() {
130
- if (oldonload) {
131
- oldonload();
132
- }
133
- func();
134
- };
135
- }
136
- }
137
-
138
- function bindReady() {
139
- if (readyBound) {
140
- return;
141
- }
142
-
143
- readyBound = true;
144
-
145
- if (document.addEventListener && !browser.opera) {
146
- document.addEventListener("DOMContentLoaded", domReady, false);
147
- }
148
-
149
- if (browser.msie && window == top) {
150
- (function() {
151
- if (isReady) {
152
- return;
153
- }
154
- try {
155
- document.documentElement.doScroll("left");
156
- } catch(error) {
157
- setTimeout(arguments.callee, 0);
158
- return;
159
- }
160
- domReady();
161
- })();
162
- }
163
-
164
- if (browser.opera) {
165
- document.addEventListener( "DOMContentLoaded", function () {
166
- if (isReady) {
167
- return;
168
- }
169
- for (var i = 0; i < document.styleSheets.length; i++) {
170
- if (document.styleSheets[i].disabled) {
171
- setTimeout( arguments.callee, 0 );
172
- return;
173
- }
174
- domReady();
175
- }
176
- }, false);
177
- }
178
-
179
- if (browser.safari) {
180
- var numStyles;
181
- (function() {
182
- if (isReady) {
183
- return;
184
- }
185
- if (document.readyState != "loaded" && document.readyState != "complete") {
186
- setTimeout( arguments.callee, 0 );
187
- return;
188
- }
189
- if (numStyles === undefined) {
190
- var links = document.getElementsByTagName("link");
191
- for (var i=0; i < links.length; i++) {
192
- if (links[i].getAttribute('rel') == 'stylesheet') {
193
- numStyles++;
194
- }
195
- }
196
- var styles = document.getElementsByTagName("style");
197
- numStyles += styles.length;
198
- }
199
- if (document.styleSheets.length != numStyles) {
200
- setTimeout( arguments.callee, 0 );
201
- return;
202
- }
203
-
204
- domReady();
205
- })();
206
- }
207
-
208
- addLoadEvent(domReady);
209
- }
210
-
211
- return {
212
- bind: bindReady,
213
- is_ready: isReady,
214
- ready_list: readyList
215
- };
216
- })();
94
+ var DomReady = window.DomReady = {},
95
+ userAgent = navigator.userAgent.toLowerCase(),
96
+ browser = {
97
+ version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
98
+ safari: /webkit/.test(userAgent),
99
+ opera: /opera/.test(userAgent),
100
+ msie: (/msie/.test(userAgent)) && (!/opera/.test( userAgent )),
101
+ mozilla: (/mozilla/.test(userAgent)) && (!/(compatible|webkit)/.test(userAgent))
102
+ },
103
+ readyBound = false,
104
+ isReady = false,
105
+ readyList = [];
106
+
107
+
108
+ function domReady() {
109
+ if(!isReady) {
110
+ isReady = true;
111
+
112
+ if(readyList) {
113
+ var length = readyList.length;
114
+ for(var fn = 0; fn < length; fn++) {
115
+ readyList[fn].call(window, []);
116
+ }
117
+
118
+ readyList = [];
119
+ }
120
+ }
121
+ };
122
+
123
+ function addLoadEvent(func) {
124
+ var oldonload = window.onload;
125
+ if (typeof window.onload != 'function') {
126
+ window.onload = func;
127
+ }
128
+ else {
129
+ window.onload = function() {
130
+ if (oldonload) {
131
+ oldonload();
132
+ }
133
+ func();
134
+ }
135
+ }
136
+ };
137
+
138
+ function bindReady() {
139
+ if(readyBound) {
140
+ return;
141
+ }
142
+
143
+ readyBound = true;
144
+
145
+ if (document.addEventListener && !browser.opera) {
146
+ document.addEventListener("DOMContentLoaded", domReady, false);
147
+ }
148
+
149
+ if (browser.msie && window == top) (function() {
150
+ if (isReady) return;
151
+ try {
152
+ document.documentElement.doScroll("left");
153
+ }
154
+ catch(error) {
155
+ setTimeout(arguments.callee, 0);
156
+ return;
157
+ }
158
+ domReady();
159
+ })();
160
+
161
+ if(browser.opera) {
162
+ document.addEventListener( "DOMContentLoaded", function () {
163
+ if (isReady) return;
164
+ for (var i = 0; i < document.styleSheets.length; i++)
165
+ if (document.styleSheets[i].disabled) {
166
+ setTimeout( arguments.callee, 0 );
167
+ return;
168
+ }
169
+ domReady();
170
+ }, false);
171
+ }
172
+
173
+ if(browser.safari) {
174
+ var numStyles;
175
+ (function(){
176
+ if (isReady) return;
177
+
178
+ if (document.readyState != "loaded" && document.readyState != "complete") {
179
+ setTimeout( arguments.callee, 0 );
180
+ return;
181
+ }
182
+
183
+ if (numStyles === undefined) {
184
+ var links = document.getElementsByTagName("link");
185
+ for (var i=0; i < links.length; i++) {
186
+ if(links[i].getAttribute('rel') == 'stylesheet') {
187
+ numStyles++;
188
+ }
189
+ }
190
+
191
+ var styles = document.getElementsByTagName("style");
192
+ numStyles += styles.length;
193
+ }
194
+
195
+ if (document.styleSheets.length != numStyles) {
196
+ setTimeout( arguments.callee, 0 );
197
+ return;
198
+ }
199
+
200
+ domReady();
201
+ })();
202
+ }
203
+
204
+ addLoadEvent(domReady);
205
+ };
206
+
207
+ DomReady.ready = function(fn, args) {
208
+ bindReady();
209
+
210
+ if (isReady) {
211
+ fn.call(window, []);
212
+ }
213
+ else {
214
+ readyList.push( function() { return fn.call(window, []); } );
215
+ }
216
+ };
217
217
 
218
218
  NinjsDOM = function() {
219
219
  this.cached_selectors = {};
220
220
  };
221
221
 
222
222
  NinjsDOM.prototype.ready = function(fn, args) {
223
- dom.bind();
223
+ bindReady();
224
224
 
225
- if (dom.is_ready()) {
225
+ if (isReady) {
226
226
  fn.call(window, args || []);
227
227
  }
228
228
  else {
229
- dom.ready_list.push( function() { return fn.call(window, args || []); } );
229
+ readyList.push( function() { return fn.call(window, args || []); } );
230
230
  }
231
231
  };
232
232
 
233
- dom.bind();
233
+ bindReady();
234
234
  NinjsModule = function(name) {
235
235
  this.dom = new NinjsDOM(this);
236
236
  this.data = {};
@@ -144,7 +144,7 @@ describe Ninjs::Project do
144
144
  File.exists?("#{SPEC_DIR}/Rakefile").should be_true
145
145
  end
146
146
  end # Project Creation
147
- =begin
147
+
148
148
  context 'Project management' do
149
149
  before :each do
150
150
  suppress_output do
@@ -257,6 +257,36 @@ describe Ninjs::Project do
257
257
  "#{SPEC_DIR}/application/myapp.js".should be_same_file_as "#{SPEC_DIR}/fixtures/compressed.myapp.js"
258
258
  end
259
259
 
260
+
260
261
  end # Project management
261
- =end
262
+
263
+ context 'Scripts with certain patterns' do
264
+ before :each do
265
+ suppress_output do
266
+ @project = Ninjs::Project.new({ name: 'myapp', root: SPEC_DIR })
267
+ @project.create
268
+ end
269
+
270
+ FileUtils.cp "#{SPEC_DIR}/fixtures/badpattern.module.js", "#{SPEC_DIR}/modules"
271
+ end
272
+
273
+ after :each do
274
+ FileUtils.rm_rf "#{SPEC_DIR}/application"
275
+ FileUtils.rm_rf "#{SPEC_DIR}/modules"
276
+ FileUtils.rm_rf "#{SPEC_DIR}/elements"
277
+ FileUtils.rm_rf "#{SPEC_DIR}/models"
278
+ FileUtils.rm_rf "#{SPEC_DIR}/lib"
279
+ FileUtils.rm_rf "#{SPEC_DIR}/plugins"
280
+ FileUtils.rm_rf "#{SPEC_DIR}/spec"
281
+ FileUtils.rm_rf "#{SPEC_DIR}/ninjs.conf"
282
+ FileUtils.rm_rf "#{SPEC_DIR}/Rakefile"
283
+ end
284
+
285
+ it 'should compile a module with the bad pattern' do
286
+ lambda {
287
+ suppress_output { @project.update }
288
+ }.should_not raise_error
289
+ end
290
+ end
291
+
262
292
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ninjs
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.16.4
5
+ version: 0.16.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Dayton Nolan
@@ -34,20 +34,9 @@ dependencies:
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: sprockets
39
- requirement: &id003 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - "="
43
- - !ruby/object:Gem::Version
44
- version: 1.0.2
45
- type: :runtime
46
- prerelease: false
47
- version_requirements: *id003
48
37
  - !ruby/object:Gem::Dependency
49
38
  name: shoulda
50
- requirement: &id004 !ruby/object:Gem::Requirement
39
+ requirement: &id003 !ruby/object:Gem::Requirement
51
40
  none: false
52
41
  requirements:
53
42
  - - ">="
@@ -55,10 +44,10 @@ dependencies:
55
44
  version: "0"
56
45
  type: :development
57
46
  prerelease: false
58
- version_requirements: *id004
47
+ version_requirements: *id003
59
48
  - !ruby/object:Gem::Dependency
60
49
  name: bundler
61
- requirement: &id005 !ruby/object:Gem::Requirement
50
+ requirement: &id004 !ruby/object:Gem::Requirement
62
51
  none: false
63
52
  requirements:
64
53
  - - ~>
@@ -66,10 +55,10 @@ dependencies:
66
55
  version: 1.0.0
67
56
  type: :development
68
57
  prerelease: false
69
- version_requirements: *id005
58
+ version_requirements: *id004
70
59
  - !ruby/object:Gem::Dependency
71
60
  name: jeweler
72
- requirement: &id006 !ruby/object:Gem::Requirement
61
+ requirement: &id005 !ruby/object:Gem::Requirement
73
62
  none: false
74
63
  requirements:
75
64
  - - ~>
@@ -77,10 +66,10 @@ dependencies:
77
66
  version: 1.5.2
78
67
  type: :development
79
68
  prerelease: false
80
- version_requirements: *id006
69
+ version_requirements: *id005
81
70
  - !ruby/object:Gem::Dependency
82
71
  name: rcov
83
- requirement: &id007 !ruby/object:Gem::Requirement
72
+ requirement: &id006 !ruby/object:Gem::Requirement
84
73
  none: false
85
74
  requirements:
86
75
  - - ">="
@@ -88,10 +77,10 @@ dependencies:
88
77
  version: "0"
89
78
  type: :development
90
79
  prerelease: false
91
- version_requirements: *id007
80
+ version_requirements: *id006
92
81
  - !ruby/object:Gem::Dependency
93
82
  name: rspec
94
- requirement: &id008 !ruby/object:Gem::Requirement
83
+ requirement: &id007 !ruby/object:Gem::Requirement
95
84
  none: false
96
85
  requirements:
97
86
  - - ">="
@@ -99,10 +88,10 @@ dependencies:
99
88
  version: "0"
100
89
  type: :development
101
90
  prerelease: false
102
- version_requirements: *id008
91
+ version_requirements: *id007
103
92
  - !ruby/object:Gem::Dependency
104
93
  name: rdoc
105
- requirement: &id009 !ruby/object:Gem::Requirement
94
+ requirement: &id008 !ruby/object:Gem::Requirement
106
95
  none: false
107
96
  requirements:
108
97
  - - ">="
@@ -110,21 +99,10 @@ dependencies:
110
99
  version: "0"
111
100
  type: :development
112
101
  prerelease: false
113
- version_requirements: *id009
114
- - !ruby/object:Gem::Dependency
115
- name: rubikon
116
- requirement: &id010 !ruby/object:Gem::Requirement
117
- none: false
118
- requirements:
119
- - - ">="
120
- - !ruby/object:Gem::Version
121
- version: "0"
122
- type: :runtime
123
- prerelease: false
124
- version_requirements: *id010
102
+ version_requirements: *id008
125
103
  - !ruby/object:Gem::Dependency
126
104
  name: fssm
127
- requirement: &id011 !ruby/object:Gem::Requirement
105
+ requirement: &id009 !ruby/object:Gem::Requirement
128
106
  none: false
129
107
  requirements:
130
108
  - - ">="
@@ -132,21 +110,10 @@ dependencies:
132
110
  version: "0"
133
111
  type: :runtime
134
112
  prerelease: false
135
- version_requirements: *id011
113
+ version_requirements: *id009
136
114
  - !ruby/object:Gem::Dependency
137
115
  name: jsmin
138
- requirement: &id012 !ruby/object:Gem::Requirement
139
- none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: "0"
144
- type: :runtime
145
- prerelease: false
146
- version_requirements: *id012
147
- - !ruby/object:Gem::Dependency
148
- name: sprockets
149
- requirement: &id013 !ruby/object:Gem::Requirement
116
+ requirement: &id010 !ruby/object:Gem::Requirement
150
117
  none: false
151
118
  requirements:
152
119
  - - ">="
@@ -154,10 +121,10 @@ dependencies:
154
121
  version: "0"
155
122
  type: :runtime
156
123
  prerelease: false
157
- version_requirements: *id013
124
+ version_requirements: *id010
158
125
  - !ruby/object:Gem::Dependency
159
126
  name: rspec
160
- requirement: &id014 !ruby/object:Gem::Requirement
127
+ requirement: &id011 !ruby/object:Gem::Requirement
161
128
  none: false
162
129
  requirements:
163
130
  - - ">="
@@ -165,7 +132,7 @@ dependencies:
165
132
  version: "0"
166
133
  type: :development
167
134
  prerelease: false
168
- version_requirements: *id014
135
+ version_requirements: *id011
169
136
  description: Ninjs is a ruby application and small javascript framework that helps you build clean, modular javascript applications. Ninjs encourages "Good Parts" best practices and the Crockford school Module pattern (http://www.crockford.com/). The ninjs command line application is an automatic compiler, written in ruby, and based on the Sprockets library (http://getsprockets.org/).
170
137
  email: daytonn@gmail.com
171
138
  executables:
@@ -195,11 +162,9 @@ files:
195
162
  - lib/ninjs/manifest.rb
196
163
  - lib/ninjs/notification.rb
197
164
  - lib/ninjs/project.rb
198
- - lib/sprockets/.gitignore
199
165
  - lib/sprockets/CHANGELOG
200
166
  - lib/sprockets/LICENSE
201
167
  - lib/sprockets/README.markdown
202
- - lib/sprockets/bin/sprocketize
203
168
  - lib/sprockets/ext/nph-sprockets.cgi
204
169
  - lib/sprockets/lib/sprockets.rb
205
170
  - lib/sprockets/lib/sprockets/concatenation.rb
@@ -351,6 +316,7 @@ files:
351
316
  - spec/dependencies_spec.rb
352
317
  - spec/fixtures/_global.module.js
353
318
  - spec/fixtures/autoload.js
319
+ - spec/fixtures/badpattern.module.js
354
320
  - spec/fixtures/changed.ninjs.conf
355
321
  - spec/fixtures/compressed.myapp.js
356
322
  - spec/fixtures/core.js
@@ -384,7 +350,7 @@ files:
384
350
  - spec/spec_helper.rb
385
351
  - templates/jasmine.yml
386
352
  - templates/test-index.html
387
- homepage: http://github.com/textnotspeech/ninjs
353
+ homepage: http://github.com/daytonn/ninjs
388
354
  licenses:
389
355
  - MIT
390
356
  post_install_message:
@@ -397,7 +363,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
397
363
  requirements:
398
364
  - - ">="
399
365
  - !ruby/object:Gem::Version
400
- hash: 3447029779432945311
366
+ hash: 4256844338774058061
401
367
  segments:
402
368
  - 0
403
369
  version: "0"
@@ -1,4 +0,0 @@
1
- doc
2
- pkg
3
- tmp
4
- README.html
@@ -1,54 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.join(File.dirname(__FILE__), *%w".. lib sprockets")
4
- require "optparse"
5
-
6
- load_path = (ENV["SPROCKETS_PATH"] || "").split(":")
7
- filenames = []
8
- options = { :load_path => load_path, :source_files => filenames, :expand_paths => false }
9
-
10
- OptionParser.new do |opts|
11
- opts.summary_width = 28
12
- opts.banner = "Usage: sprocketize [options] filename [filename ...]"
13
-
14
- def opts.show_usage
15
- puts self
16
- exit
17
- end
18
-
19
- opts.on("-C DIRECTORY", "--directory=DIRECTORY", "Change to DIRECTORY before doing anything") do |directory|
20
- Dir.chdir(directory)
21
- end
22
-
23
- opts.on("-I DIRECTORY", "--include-dir=DIRECTORY", "Adds the directory to the Sprockets load path") do |directory|
24
- load_path << directory
25
- end
26
-
27
- opts.on("-a DIRECTORY", "--asset-root=DIRECTORY", "Copy provided assets into DIRECTORY") do |directory|
28
- options[:asset_root] = directory
29
- end
30
-
31
- opts.on_tail("-h", "--help", "Shows this help message") do
32
- opts.show_usage
33
- end
34
-
35
- opts.on_tail("-v", "--version", "Shows version") do
36
- puts Sprockets::Version::STRING
37
- exit
38
- end
39
-
40
- opts.show_usage if ARGV.empty?
41
-
42
- begin
43
- opts.order(ARGV) do |filename|
44
- filenames << filename
45
- end
46
- rescue OptionParser::ParseError => e
47
- opts.warn e.message
48
- opts.show_usage
49
- end
50
- end
51
-
52
- secretary = Sprockets::Secretary.new(options)
53
- secretary.install_assets if options[:asset_root]
54
- print secretary.concatenation