ninjs 0.10.1 → 0.10.2
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/bin/ninjs +2 -2
- data/lib/ninjs.rb +1 -1
- data/lib/ninjs/configuration.rb +13 -3
- data/lib/ninjs/dependencies.rb +0 -0
- data/lib/ninjs/project.rb +11 -14
- data/ninjs.gemspec +2 -2
- data/repository/ninjs/core/application.js +11 -4
- data/repository/ninjs/core/module.js +12 -6
- metadata +4 -4
data/bin/ninjs
CHANGED
@@ -42,11 +42,11 @@ class NinjsConsole < Rubikon::Application::Base
|
|
42
42
|
Ninjs::Command.import
|
43
43
|
end
|
44
44
|
|
45
|
-
option :directory,
|
45
|
+
option :directory, :dir do
|
46
46
|
@directory = dir
|
47
47
|
end
|
48
48
|
option :p => :directory
|
49
|
-
command :create,
|
49
|
+
command :create, :app_name do
|
50
50
|
Ninjs::Command.create(app_name, @directory)
|
51
51
|
end
|
52
52
|
end
|
data/lib/ninjs.rb
CHANGED
data/lib/ninjs/configuration.rb
CHANGED
@@ -9,7 +9,9 @@ module Ninjs
|
|
9
9
|
:dependencies,
|
10
10
|
:autoload,
|
11
11
|
:config_path,
|
12
|
-
:asset_root
|
12
|
+
:asset_root,
|
13
|
+
:base_url,
|
14
|
+
:tests_path
|
13
15
|
|
14
16
|
def initialize(project_path, name = 'NinjsApplication')
|
15
17
|
@defaults = {
|
@@ -18,7 +20,9 @@ module Ninjs
|
|
18
20
|
:asset_root => project_path,
|
19
21
|
:output => 'expanded',
|
20
22
|
:dependencies => ['<jquery/latest>'],
|
21
|
-
:autoload => ['<ninjs/utilities/all>']
|
23
|
+
:autoload => ['<ninjs/utilities/all>'],
|
24
|
+
:base_url => 'http://www.example.com/',
|
25
|
+
:tests_path => 'tests/'
|
22
26
|
}
|
23
27
|
|
24
28
|
@defaults.each do |label, setting|
|
@@ -39,6 +43,8 @@ asset_root: #{options[:project_path]}
|
|
39
43
|
output: #{options[:output]}
|
40
44
|
dependencies: [#{options[:dependencies].join(', ')}]
|
41
45
|
autoload: [#{options[:autoload].join(', ')}]
|
46
|
+
base_url: #{options[:base_url]}
|
47
|
+
tests_path: #{options[:tests_path]}
|
42
48
|
CONF
|
43
49
|
end
|
44
50
|
|
@@ -57,7 +63,9 @@ autoload: [#{options[:autoload].join(', ')}]
|
|
57
63
|
:asset_root => @project_path,
|
58
64
|
:output => @output,
|
59
65
|
:dependencies => @dependencies,
|
60
|
-
:autoload => @autoload
|
66
|
+
:autoload => @autoload,
|
67
|
+
:base_url => @base_url,
|
68
|
+
:tests_path => @tests_path
|
61
69
|
})
|
62
70
|
create_conf_file content
|
63
71
|
end
|
@@ -74,6 +82,8 @@ autoload: [#{options[:autoload].join(', ')}]
|
|
74
82
|
@output = config['output']
|
75
83
|
@dependencies = config['dependencies'] || Array.new
|
76
84
|
@autoload = config['autoload'] || Array.new
|
85
|
+
@base_url = config['base_url'] || 'http://www.example.com/'
|
86
|
+
@tests_path = config['tests_path'] || 'tests/'
|
77
87
|
rescue IOError => e
|
78
88
|
puts e.message
|
79
89
|
puts e.backtrace.inspect
|
data/lib/ninjs/dependencies.rb
CHANGED
File without changes
|
data/lib/ninjs/project.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Ninjs
|
2
|
-
class Project
|
3
|
-
|
2
|
+
class Project
|
4
3
|
attr_reader :app_filename,
|
5
4
|
:project_path,
|
6
5
|
:config
|
@@ -19,15 +18,13 @@ module Ninjs
|
|
19
18
|
project
|
20
19
|
end
|
21
20
|
|
22
|
-
def initialize(name = 'NinjsApplication', project_dir = '/')
|
23
|
-
name.gsub
|
21
|
+
def initialize(name = 'NinjsApplication', project_dir = '/')
|
22
|
+
app_name = name.gsub(/\s|\-|\./, '')
|
24
23
|
proj_dir = clean_project_path project_dir
|
25
24
|
@modules = Array.new
|
26
|
-
|
27
25
|
@color_start = "\e[32m"
|
28
26
|
@color_end = "\e[0m"
|
29
|
-
|
30
|
-
@app_filename = name.downcase
|
27
|
+
@app_filename = app_name.downcase
|
31
28
|
@project_path = "#{Ninjs.root_directory}#{proj_dir}"
|
32
29
|
@config = Ninjs::Configuration.new @project_path, name
|
33
30
|
end
|
@@ -89,16 +86,16 @@ module Ninjs
|
|
89
86
|
File.open(filename, "w+") do |file|
|
90
87
|
file << "//-- Ninjs #{Time.now.to_s} --//\n"
|
91
88
|
file << File.open("#{@project_path}lib/nin.js", 'r').readlines.join('')
|
92
|
-
file << "\nvar #{@config.name} = new NinjsApplication();"
|
89
|
+
file << "\nvar #{@config.name} = new NinjsApplication('#{@config.base_url}', '#{@config.tests_path}');"
|
93
90
|
end
|
94
91
|
end
|
95
92
|
|
96
93
|
def import_test_files
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
94
|
+
FileUtils.cp "#{Ninjs.base_directory}/repository/ninjs/tests/index.html", "#{@project_path}tests"
|
95
|
+
FileUtils.cp "#{Ninjs.base_directory}/repository/ninjs/tests/ninjs.test.js", "#{@project_path}tests"
|
96
|
+
FileUtils.cp "#{Ninjs.base_directory}/repository/ninjs/tests/ninjs.utilities.test.js", "#{@project_path}tests"
|
97
|
+
FileUtils.cp "#{Ninjs.base_directory}/repository/ninjs/tests/qunit/qunit.js", "#{@project_path}tests/qunit"
|
98
|
+
FileUtils.cp "#{Ninjs.base_directory}/repository/ninjs/tests/qunit/qunit.css", "#{@project_path}tests/qunit"
|
102
99
|
end
|
103
100
|
|
104
101
|
def update
|
@@ -187,7 +184,7 @@ module Ninjs
|
|
187
184
|
def write_core(file)
|
188
185
|
file << "/*---------- Ninjs core ../lib/nin.js ----------*/\n"
|
189
186
|
file << "//= require \"../lib/nin.js\"\n\n"
|
190
|
-
file << "\nvar #{@config.name} = new NinjsApplication();\n\n"
|
187
|
+
file << "\nvar #{@config.name} = new NinjsApplication('#{@config.base_url}', '#{@config.tests_path}');\n\n"
|
191
188
|
end
|
192
189
|
|
193
190
|
def write_autoload(file)
|
data/ninjs.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ninjs}
|
8
|
-
s.version = "0.10.
|
8
|
+
s.version = "0.10.2"
|
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"]
|
12
|
-
s.date = %q{2011-01-
|
12
|
+
s.date = %q{2011-01-29}
|
13
13
|
s.default_executable = %q{ninjs}
|
14
14
|
s.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/).}
|
15
15
|
s.email = %q{daytonn@gmail.com}
|
@@ -7,13 +7,20 @@
|
|
7
7
|
See Also:
|
8
8
|
<NinjsModule>
|
9
9
|
*/
|
10
|
-
var NinjsApplication = function() {
|
10
|
+
var NinjsApplication = function(base_url, tests_path) {
|
11
11
|
if (is_undefined(window._)) {
|
12
12
|
window._ = this;
|
13
13
|
}
|
14
|
-
|
15
|
-
if
|
16
|
-
|
14
|
+
|
15
|
+
if(is_defined(tests_path)) {
|
16
|
+
this.tests_path = tests_path;
|
17
|
+
}
|
18
|
+
|
19
|
+
if(is_defined(base_url)) {
|
20
|
+
this.site_url = function(path) {
|
21
|
+
var path = path || '';
|
22
|
+
return base_url + path;
|
23
|
+
}
|
17
24
|
}
|
18
25
|
};
|
19
26
|
|
@@ -190,10 +190,10 @@ NinjsModule.method('add_test', function(test_file) {
|
|
190
190
|
});
|
191
191
|
|
192
192
|
/*
|
193
|
-
Method:
|
193
|
+
Method: _run_tests
|
194
194
|
Runs the test files in the test array. This method is automatically called by the execute method if run_tests === true
|
195
195
|
*/
|
196
|
-
NinjsModule.method('
|
196
|
+
NinjsModule.method('_run_tests', function() {
|
197
197
|
var test_template = [];
|
198
198
|
test_template.push('<div class="test-results" title="Test Results">');
|
199
199
|
test_template.push('<h1 id="qunit-header">' + this.name + ' module tests</h1>');
|
@@ -202,25 +202,31 @@ NinjsModule.method('run_tests', function() {
|
|
202
202
|
test_template.push('<ol id="qunit-tests"></ol>');
|
203
203
|
test_template.push('</div>');
|
204
204
|
|
205
|
+
var qunit_dependencies = '<script src="' + _.tests_path +'qunit/qunit.js"></script>';
|
206
|
+
$.getScript(_.tests_path + 'qunit/qunit.js');
|
207
|
+
var qunit_styles = '<link rel="stylesheet" href="' + _.tests_path + 'qunit/qunit.css">';
|
208
|
+
$('body').append(qunit_styles);
|
205
209
|
$('body').append(test_template.join("\n"));
|
206
210
|
|
207
211
|
this.tests.each(function(test) {
|
208
|
-
$.getScript(
|
212
|
+
$.getScript(_.tests_path + test + '.test.js', function() {
|
209
213
|
var test_results_dialog = $('.test-results');
|
210
|
-
var height =
|
214
|
+
var height = $(window).height() - 200;
|
211
215
|
var width = $(window).width() - 300;
|
212
|
-
var maxHeight = $(window).height() - 200;
|
213
216
|
try {
|
214
217
|
test_results_dialog.dialog({
|
215
218
|
width: width,
|
216
219
|
height: height,
|
217
|
-
|
220
|
+
autoOpen: false,
|
218
221
|
buttons: {
|
219
222
|
"Thanks buddy": function() {
|
220
223
|
test_results_dialog.dialog('close');
|
221
224
|
}
|
222
225
|
}
|
223
226
|
});
|
227
|
+
var failed = $('.failed');
|
228
|
+
console.log(failed.html());
|
229
|
+
test_results_dialog.dialog('open');
|
224
230
|
}
|
225
231
|
catch(error) {
|
226
232
|
alert("Test harness requires jQueryUI");
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 10
|
8
|
-
-
|
9
|
-
version: 0.10.
|
8
|
+
- 2
|
9
|
+
version: 0.10.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Dayton Nolan
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-29 00:00:00 -06:00
|
18
18
|
default_executable: ninjs
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -459,7 +459,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
459
459
|
requirements:
|
460
460
|
- - ">="
|
461
461
|
- !ruby/object:Gem::Version
|
462
|
-
hash:
|
462
|
+
hash: 3572589723604572302
|
463
463
|
segments:
|
464
464
|
- 0
|
465
465
|
version: "0"
|