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