ninjs 0.16.4 → 0.16.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.bundle/config +2 -2
- data/Gemfile +0 -1
- data/Gemfile.lock +0 -2
- data/Rakefile +2 -12
- data/VERSION +1 -1
- data/lib/ninjs.rb +2 -0
- data/lib/ninjs/dependencies.rb +0 -2
- data/lib/ninjs/project.rb +1 -1
- data/lib/sprockets/CHANGELOG +0 -0
- data/lib/sprockets/LICENSE +0 -0
- data/lib/sprockets/README.markdown +0 -0
- data/lib/sprockets/lib/sprockets.rb +0 -0
- data/lib/sprockets/lib/sprockets/concatenation.rb +0 -0
- data/lib/sprockets/lib/sprockets/environment.rb +0 -0
- data/lib/sprockets/lib/sprockets/error.rb +0 -0
- data/lib/sprockets/lib/sprockets/pathname.rb +0 -0
- data/lib/sprockets/lib/sprockets/preprocessor.rb +0 -0
- data/lib/sprockets/lib/sprockets/secretary.rb +0 -0
- data/lib/sprockets/lib/sprockets/source_file.rb +0 -0
- data/lib/sprockets/lib/sprockets/source_line.rb +0 -0
- data/lib/sprockets/lib/sprockets/version.rb +0 -0
- data/lib/sprockets/sprockets.gemspec +0 -0
- data/lib/sprockets/test/fixtures/assets/images/script_with_assets/one.png +0 -0
- data/lib/sprockets/test/fixtures/assets/images/script_with_assets/two.png +0 -0
- data/lib/sprockets/test/fixtures/assets/stylesheets/script_with_assets.css +0 -0
- data/lib/sprockets/test/fixtures/constants.yml +0 -0
- data/lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_ignored_when_strip_comments_is_false.js +0 -0
- data/lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_removed_by_default.js +0 -0
- data/lib/sprockets/test/fixtures/multiline_comments_should_be_removed_by_default.js +0 -0
- data/lib/sprockets/test/fixtures/requiring_a_file_after_it_has_already_been_required_should_do_nothing.js +0 -0
- data/lib/sprockets/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js +0 -0
- data/lib/sprockets/test/fixtures/requiring_a_single_file_should_replace_the_require_comment_with_the_file_contents.js +0 -0
- data/lib/sprockets/test/fixtures/requiring_the_current_file_should_do_nothing.js +0 -0
- data/lib/sprockets/test/fixtures/src/constants.yml +0 -0
- data/lib/sprockets/test/fixtures/src/foo.js +0 -0
- data/lib/sprockets/test/fixtures/src/foo/bar.js +0 -0
- data/lib/sprockets/test/fixtures/src/foo/foo.js +0 -0
- data/lib/sprockets/test/fixtures/src/script_with_assets.js +0 -0
- data/lib/sprockets/test/fixtures/src/script_with_comments.js +0 -0
- data/lib/sprockets/test/test_concatenation.rb +0 -0
- data/lib/sprockets/test/test_environment.rb +0 -0
- data/lib/sprockets/test/test_helper.rb +0 -0
- data/lib/sprockets/test/test_pathname.rb +0 -0
- data/lib/sprockets/test/test_preprocessor.rb +0 -0
- data/lib/sprockets/test/test_secretary.rb +0 -0
- data/lib/sprockets/test/test_source_file.rb +0 -0
- data/lib/sprockets/test/test_source_line.rb +0 -0
- data/ninjs.gemspec +3 -13
- data/spec/fixtures/badpattern.module.js +5 -0
- data/spec/fixtures/compressed.myapp.js +12 -16
- data/spec/fixtures/myapp.js +127 -127
- data/spec/project_spec.rb +32 -2
- metadata +22 -56
- data/lib/sprockets/.gitignore +0 -4
- data/lib/sprockets/bin/sprocketize +0 -54
data/.bundle/config
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
---
|
2
|
-
|
1
|
+
--- {}
|
2
|
+
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
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/
|
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
|
-
|
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.
|
1
|
+
0.16.5
|
data/lib/ninjs.rb
CHANGED
@@ -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
|
data/lib/ninjs/dependencies.rb
CHANGED
@@ -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'
|
data/lib/ninjs/project.rb
CHANGED
@@ -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)
|
data/lib/sprockets/CHANGELOG
CHANGED
File without changes
|
data/lib/sprockets/LICENSE
CHANGED
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
|
File without changes
|
File without changes
|
data/lib/sprockets/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js
CHANGED
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
|
data/ninjs.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "ninjs"
|
8
|
-
s.version = "0.16.
|
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/
|
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
|
@@ -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
|
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)
|
15
|
-
|
16
|
-
domReady();})();
|
17
|
-
if(
|
18
|
-
|
19
|
-
|
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
|
-
|
28
|
-
else{
|
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');}
|
data/spec/fixtures/myapp.js
CHANGED
@@ -91,146 +91,146 @@ unless = function(expression, callback, fallback) {
|
|
91
91
|
}
|
92
92
|
}
|
93
93
|
};
|
94
|
-
var
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
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
|
-
|
223
|
+
bindReady();
|
224
224
|
|
225
|
-
if (
|
225
|
+
if (isReady) {
|
226
226
|
fn.call(window, args || []);
|
227
227
|
}
|
228
228
|
else {
|
229
|
-
|
229
|
+
readyList.push( function() { return fn.call(window, args || []); } );
|
230
230
|
}
|
231
231
|
};
|
232
232
|
|
233
|
-
|
233
|
+
bindReady();
|
234
234
|
NinjsModule = function(name) {
|
235
235
|
this.dom = new NinjsDOM(this);
|
236
236
|
this.data = {};
|
data/spec/project_spec.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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.
|
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: &
|
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: *
|
47
|
+
version_requirements: *id003
|
59
48
|
- !ruby/object:Gem::Dependency
|
60
49
|
name: bundler
|
61
|
-
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: *
|
58
|
+
version_requirements: *id004
|
70
59
|
- !ruby/object:Gem::Dependency
|
71
60
|
name: jeweler
|
72
|
-
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: *
|
69
|
+
version_requirements: *id005
|
81
70
|
- !ruby/object:Gem::Dependency
|
82
71
|
name: rcov
|
83
|
-
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: *
|
80
|
+
version_requirements: *id006
|
92
81
|
- !ruby/object:Gem::Dependency
|
93
82
|
name: rspec
|
94
|
-
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: *
|
91
|
+
version_requirements: *id007
|
103
92
|
- !ruby/object:Gem::Dependency
|
104
93
|
name: rdoc
|
105
|
-
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: *
|
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: &
|
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: *
|
113
|
+
version_requirements: *id009
|
136
114
|
- !ruby/object:Gem::Dependency
|
137
115
|
name: jsmin
|
138
|
-
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: *
|
124
|
+
version_requirements: *id010
|
158
125
|
- !ruby/object:Gem::Dependency
|
159
126
|
name: rspec
|
160
|
-
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: *
|
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/
|
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:
|
366
|
+
hash: 4256844338774058061
|
401
367
|
segments:
|
402
368
|
- 0
|
403
369
|
version: "0"
|
data/lib/sprockets/.gitignore
DELETED
@@ -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
|