ninjs 0.13.1 → 0.13.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -3
- data/Gemfile.lock +1 -67
- data/README.md +348 -0
- data/Rakefile +2 -4
- data/VERSION +1 -1
- data/bin/ninjs +196 -39
- data/lib/ninjs/command.rb +23 -64
- data/lib/ninjs/configuration.rb +16 -38
- data/lib/ninjs/generator.rb +23 -12
- data/lib/ninjs/project.rb +7 -6
- data/ninjs.gemspec +9 -33
- data/repository/ninjs/core/module.js +32 -105
- data/repository/ninjs/docs/Data/ClassHierarchy.nd +0 -0
- data/repository/ninjs/docs/Data/ConfigFileInfo.nd +0 -0
- data/repository/ninjs/docs/Data/IndexInfo.nd +0 -0
- data/repository/ninjs/docs/Data/SymbolTable.nd +0 -0
- data/repository/ninjs/extensions/ninjs.jquery.js +67 -0
- metadata +74 -100
- data/README.textile +0 -287
- data/tmp/metric_fu/output/churn.html +0 -692
- data/tmp/metric_fu/output/flay.html +0 -566
- data/tmp/metric_fu/output/flay.js +0 -11
- data/tmp/metric_fu/output/flog.html +0 -2392
- data/tmp/metric_fu/output/flog.js +0 -12
- data/tmp/metric_fu/output/hotspots.html +0 -3607
- data/tmp/metric_fu/output/index.html +0 -572
- data/tmp/metric_fu/output/lib_ninjs.rb.html +0 -49
- data/tmp/metric_fu/output/lib_ninjs_command.rb.html +0 -137
- data/tmp/metric_fu/output/lib_ninjs_configuration.rb.html +0 -107
- data/tmp/metric_fu/output/lib_ninjs_project.rb.html +0 -236
- data/tmp/metric_fu/output/rcov.html +0 -566
- data/tmp/metric_fu/output/rcov.js +0 -11
- data/tmp/metric_fu/output/reek.html +0 -1294
- data/tmp/metric_fu/output/reek.js +0 -20
- data/tmp/metric_fu/output/roodi.html +0 -599
- data/tmp/metric_fu/output/roodi.js +0 -11
- data/tmp/metric_fu/report.yml +0 -1548
data/Rakefile
CHANGED
@@ -54,10 +54,8 @@ namespace :ndoc do
|
|
54
54
|
desc "Generate documentation with NaturalDocs"
|
55
55
|
|
56
56
|
task :generate do
|
57
|
-
output = `ndocs -i /Volumes/Storage/Development/ninjs/repository/ninjs/ -o HTML /Volumes/Storage/Development/ninjs-ghpages/
|
57
|
+
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
|
58
58
|
puts output
|
59
59
|
end
|
60
60
|
|
61
|
-
end
|
62
|
-
|
63
|
-
require 'metric_fu'
|
61
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.13.
|
1
|
+
0.13.2
|
data/bin/ninjs
CHANGED
@@ -3,62 +3,219 @@
|
|
3
3
|
$: << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
|
4
4
|
|
5
5
|
begin
|
6
|
-
require 'rubikon'
|
7
6
|
require 'ninjs'
|
7
|
+
require 'optparse'
|
8
8
|
rescue LoadError
|
9
9
|
require 'rubygems'
|
10
|
-
require 'rubikon'
|
11
10
|
require 'ninjs'
|
11
|
+
require 'optparse'
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
header = <<-HEADER
|
15
|
+
ninjs #{Ninjs::VERSION}
|
16
|
+
Copyright (c) #{Time.new.year} Dayton Nolan
|
17
|
+
Released under the MIT License
|
18
|
+
|
19
|
+
Description:
|
20
|
+
The ninjs command line application is a simple way to quickly develop and manage your application. With it you can create an application, generate scaffolding, compile, and upgrade your application.
|
21
|
+
|
22
|
+
Usage: ninjs [command] [arguments] [options (-h, --help)]
|
23
|
+
|
24
|
+
Commands:
|
25
|
+
HEADER
|
26
|
+
|
27
|
+
create = <<-CREATE
|
28
|
+
create Creates a new ninjs application in the current working
|
29
|
+
directory or sub directory within.
|
30
|
+
|
31
|
+
Arguments:
|
32
|
+
application name - Name of the ninjs application
|
33
|
+
subdirectory* - Directory where the application will be
|
34
|
+
installed (created if non existent)
|
35
|
+
|
36
|
+
examples:
|
37
|
+
ninjs create myapp
|
38
|
+
ninjs create myapp subdirectory
|
39
|
+
CREATE
|
40
|
+
|
41
|
+
generate = <<-GEN
|
42
|
+
generate Generates scoffolding for the given component file type.
|
43
|
+
|
44
|
+
Arguments:
|
45
|
+
type - Type of application scaffold to create (module, elements, model).
|
46
|
+
name* - Name of the module to generate the scaffold for
|
47
|
+
|
48
|
+
Options:
|
49
|
+
-a, --alias name* - Create an alias of the application object
|
50
|
+
(defaults to "app"), passing a name is optional
|
51
|
+
-e, --elements - Generate an elements file
|
52
|
+
-m, --model - Generate a model file
|
53
|
+
|
54
|
+
examples:
|
55
|
+
ninjs generate module mymodule -em (generates module, elements and model)
|
56
|
+
ninjs generate module mymodule -a (generates an application alias)
|
57
|
+
ninjs generate elements mymodule -m (generates an elements and a model file)
|
58
|
+
ninjs generate model mymodule (generates an model file)
|
59
|
+
GEN
|
60
|
+
|
61
|
+
compile = <<-COMP
|
62
|
+
compile Compiles the ninjs project in the current working directory.
|
18
63
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
64
|
+
Options:
|
65
|
+
-c, --compress - Compress output with JsMin
|
66
|
+
|
67
|
+
example:
|
68
|
+
ninjs compile
|
69
|
+
COMP
|
70
|
+
|
71
|
+
watch = <<-WATCH
|
72
|
+
watch Watches the current working directory for file changes and
|
73
|
+
compiles when changes are detected.
|
74
|
+
|
75
|
+
example:
|
76
|
+
ninjs watch
|
77
|
+
WATCH
|
78
|
+
|
79
|
+
upd = <<-UPDATE
|
80
|
+
update Updates your application's core files to the latest version.
|
81
|
+
UPDATE
|
82
|
+
|
83
|
+
footer = <<-FOOTER
|
84
|
+
* optional argument
|
85
|
+
FOOTER
|
86
|
+
|
87
|
+
help = {
|
88
|
+
:header => header,
|
89
|
+
:create => create,
|
90
|
+
:generate => generate,
|
91
|
+
:compile => compile,
|
92
|
+
:watch => watch,
|
93
|
+
:update => upd,
|
94
|
+
:footer => footer
|
95
|
+
}
|
96
|
+
|
97
|
+
command = ARGV[0]
|
98
|
+
|
99
|
+
options = {
|
100
|
+
:alias => false,
|
101
|
+
:elements => false,
|
102
|
+
:model => false,
|
103
|
+
:help => false,
|
104
|
+
:compress => false
|
105
|
+
}
|
106
|
+
|
107
|
+
optparse = OptionParser.new do|opts|
|
108
|
+
opts.on( '-h', '--help', 'Display this screen' ) do
|
109
|
+
options[:help] = true
|
110
|
+
|
111
|
+
if command.nil? || command.match(/^-h/)
|
112
|
+
help.each do |section|
|
113
|
+
puts section
|
114
|
+
end
|
115
|
+
exit
|
29
116
|
end
|
30
117
|
end
|
31
118
|
|
32
|
-
|
33
|
-
|
119
|
+
opts.on( '-v', '--version', 'Display the version') do
|
120
|
+
time = Time.now
|
121
|
+
Ninjs::Notification.notice 'ninjs ' + Ninjs::VERSION
|
122
|
+
Ninjs::Notification.notice "Copyright (c) #{time.year} Dayton Nolan"
|
123
|
+
Ninjs::Notification.notice "Released under the MIT License"
|
124
|
+
exit
|
34
125
|
end
|
35
126
|
|
36
|
-
|
37
|
-
|
127
|
+
opts.on( '-a', '--alias', 'Generate application alias') do
|
128
|
+
options[:alias] = true
|
38
129
|
end
|
39
130
|
|
40
|
-
|
41
|
-
|
131
|
+
opts.on('-e', '--elements', 'Generate elements file') do
|
132
|
+
options[:elements] = true
|
42
133
|
end
|
43
134
|
|
44
|
-
|
45
|
-
|
135
|
+
opts.on('-m', '--model', 'Generate model file') do
|
136
|
+
options[:model] = true
|
46
137
|
end
|
138
|
+
|
139
|
+
opts.on('-c', '--compress', 'Compress with JsMin') do
|
140
|
+
options[:compress] = true
|
141
|
+
end
|
142
|
+
end
|
47
143
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
144
|
+
optparse.parse!
|
145
|
+
|
146
|
+
case command
|
147
|
+
# create
|
148
|
+
when "create"
|
149
|
+
if options[:help]
|
150
|
+
puts help[:create]
|
151
|
+
exit
|
152
|
+
end
|
153
|
+
app_name = ARGV[1]
|
154
|
+
sub_dir = ARGV[2] || nil
|
155
|
+
|
156
|
+
if app_name.nil?
|
157
|
+
puts "Error! Application name is required (ninjs create app_name)"
|
158
|
+
exit
|
159
|
+
end
|
160
|
+
|
161
|
+
sub_dir.nil? ? Ninjs::Command.create(app_name) : Ninjs::Command.create(app_name, sub_dir)
|
162
|
+
# generate
|
163
|
+
when "generate"
|
164
|
+
if options[:help]
|
165
|
+
puts help[:generate]
|
166
|
+
exit
|
167
|
+
end
|
168
|
+
errors = Hash.new
|
169
|
+
type = ARGV[1]
|
170
|
+
name = ARGV[2]
|
171
|
+
als = ARGV[3] || 'app'
|
172
|
+
|
173
|
+
errors[:type] = "Error! Scaffold type is required (ninjs generate module mymodule)" if type.nil?
|
174
|
+
errors[:name] = "Error! Module name is required (ninjs generate module mymodule)" if name.nil?
|
175
|
+
|
176
|
+
unless errors.empty?
|
177
|
+
errors.each do |error|
|
178
|
+
puts error
|
179
|
+
end
|
180
|
+
exit
|
181
|
+
end
|
182
|
+
|
53
183
|
with = {
|
54
|
-
:model => model
|
55
|
-
:elements => elements
|
184
|
+
:model => options[:model],
|
185
|
+
:elements => options[:elements]
|
56
186
|
}
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
187
|
+
|
188
|
+
if options[:alias]
|
189
|
+
Ninjs::Command.generate_with_alias(type, name, with, als)
|
190
|
+
else
|
191
|
+
Ninjs::Command.generate(type, name, with)
|
192
|
+
end
|
193
|
+
# compile
|
194
|
+
when "compile"
|
195
|
+
if options[:help]
|
196
|
+
puts help[:compile]
|
197
|
+
exit
|
198
|
+
end
|
199
|
+
|
200
|
+
compress_output = options[:compress] ? true : false
|
201
|
+
Ninjs::Command.compile(compress_output)
|
202
|
+
# watch
|
203
|
+
when "watch"
|
204
|
+
if options[:help]
|
205
|
+
puts help[:watch]
|
206
|
+
exit
|
207
|
+
end
|
208
|
+
Ninjs::Command.watch
|
209
|
+
# update
|
210
|
+
when "update"
|
211
|
+
if options[:help]
|
212
|
+
puts help[:update]
|
213
|
+
exit
|
214
|
+
end
|
215
|
+
Ninjs::Command.update
|
216
|
+
# help
|
217
|
+
else
|
218
|
+
help.each do |section|
|
219
|
+
puts section
|
220
|
+
end
|
221
|
+
end
|
data/lib/ninjs/command.rb
CHANGED
@@ -48,81 +48,40 @@ module Ninjs
|
|
48
48
|
project.create
|
49
49
|
end
|
50
50
|
|
51
|
-
def compile
|
51
|
+
def compile(compress_output)
|
52
52
|
project_path = Dir.getwd << '/'
|
53
53
|
raise "ninjs.conf was not located in #{project_path}" unless File.exists? "#{project_path}/ninjs.conf"
|
54
54
|
project = Ninjs::Project.new
|
55
|
+
project.config.output = compress_output ? 'compressed' : 'expanded'
|
55
56
|
project.update
|
56
57
|
end
|
57
58
|
|
58
59
|
def import(package)
|
59
60
|
Ninjs::PackageManager.import(package)
|
60
61
|
end
|
61
|
-
|
62
|
-
def help
|
63
|
-
puts <<-DOC
|
64
|
-
ninjs #{Ninjs::VERSION}
|
65
|
-
Copyright (c) #{Time.new.year} Dayton Nolan
|
66
|
-
Released under the MIT License
|
67
|
-
|
68
|
-
Description:
|
69
|
-
The ninjs command line application is a simple way to quickly develop and manage your application. With it you can create an application, generate scaffolding, compile, and upgrade your application.
|
70
|
-
|
71
|
-
Usage: ninjs [command] [arguments]
|
72
|
-
|
73
|
-
Commands:
|
74
|
-
create Creates a new ninjs application in the current working
|
75
|
-
directory or sub directory within.
|
76
|
-
|
77
|
-
Arguments:
|
78
|
-
application name - Name of the ninjs application
|
79
|
-
sub directory* - Directory where the application will be
|
80
|
-
installed (created if non existent)
|
81
|
-
|
82
|
-
examples:
|
83
|
-
ninjs create myapp
|
84
|
-
ninjs create myapp subdirectory
|
85
|
-
|
86
|
-
generate Generates scoffolding for the given component file type.
|
87
|
-
|
88
|
-
Arguments:
|
89
|
-
file type - Type of application file to create (module, elements,
|
90
|
-
model).
|
91
|
-
module name* - Name of the module to generate the scaffold for
|
92
|
-
|
93
|
-
Flags:
|
94
|
-
-e - Generate an elements file for the same module
|
95
|
-
-m - Generate a model file for the same module
|
96
|
-
|
97
|
-
examples:
|
98
|
-
ninjs generate model mymodule -e -m
|
99
|
-
ninjs generate elements mymodule
|
100
|
-
ninjs generate model mymodule
|
101
|
-
|
102
|
-
compile Compiles the ninjs project in the current working directory.
|
103
|
-
|
104
|
-
example:
|
105
|
-
ninjs compile
|
106
|
-
|
107
|
-
watch Watches the current working directory for file changes and
|
108
|
-
compiles when changes are detected.
|
109
|
-
|
110
|
-
example:
|
111
|
-
ninjs watch
|
112
|
-
|
113
|
-
upgrade Upgrades your application's core files to the latest version.
|
114
|
-
|
115
|
-
* optional argument
|
116
|
-
DOC
|
117
|
-
end
|
118
62
|
|
119
63
|
def generate(object, name, with)
|
120
64
|
begin
|
121
65
|
conf_path = "#{Dir.getwd}/ninjs.conf"
|
122
66
|
raise "ninjs.conf was not located in #{conf_path}" unless File.exists? "#{conf_path}"
|
123
67
|
generator = Ninjs::Generator.new(Ninjs::Project.new, name)
|
124
|
-
|
125
|
-
|
68
|
+
self.generate_object generator, object, with
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def generate_with_alias(object, name, with, als = 'app')
|
73
|
+
begin
|
74
|
+
conf_path = "#{Dir.getwd}/ninjs.conf"
|
75
|
+
raise "ninjs.conf was not located in #{conf_path}" unless File.exists? "#{conf_path}"
|
76
|
+
generator = Ninjs::Generator.new(Ninjs::Project.new, name)
|
77
|
+
generator.alias = true
|
78
|
+
generator.app_name = als
|
79
|
+
self.generate_object generator, object, with
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def generate_object(generator, object, with)
|
84
|
+
case object
|
126
85
|
when 'module'
|
127
86
|
generator.generate_module_file(with)
|
128
87
|
generator.generate_elements_file if with[:elements]
|
@@ -131,18 +90,18 @@ Commands:
|
|
131
90
|
generator.generate_elements_file
|
132
91
|
when 'model'
|
133
92
|
generator.generate_model_file
|
134
|
-
end
|
135
|
-
end
|
93
|
+
end
|
136
94
|
end
|
137
95
|
|
138
|
-
def
|
96
|
+
def update
|
139
97
|
project_path = Dir.getwd << '/'
|
140
98
|
raise "ninjs.conf was not located in #{project_path}" unless File.exists? "#{project_path}ninjs.conf"
|
141
99
|
project = Ninjs::Project.new
|
142
100
|
|
143
101
|
project.create_ninjs_lib_file
|
102
|
+
project.create_utility_lib_file
|
144
103
|
end
|
145
104
|
|
146
|
-
module_function :create, :watch, :compile, :
|
105
|
+
module_function :create, :watch, :compile, :import, :generate, :generate_object, :generate_with_alias, :update
|
147
106
|
end
|
148
107
|
end
|
data/lib/ninjs/configuration.rb
CHANGED
@@ -2,27 +2,23 @@ module Ninjs
|
|
2
2
|
class Configuration
|
3
3
|
|
4
4
|
attr_reader :name,
|
5
|
-
:app_filename,
|
6
|
-
:directory,
|
7
|
-
:output,
|
8
5
|
:dependencies,
|
9
6
|
:autoload,
|
10
|
-
:
|
11
|
-
|
12
|
-
|
13
|
-
:test_path
|
7
|
+
:asset_root
|
8
|
+
|
9
|
+
attr_accessor :output
|
14
10
|
|
15
11
|
def initialize(project_path, name = '')
|
16
12
|
@project_path = project_path
|
13
|
+
|
17
14
|
@defaults = {
|
18
15
|
:name => name,
|
19
|
-
:app_filename => name.gsub(/\s|\-|\./, '').downcase,
|
20
16
|
:output => 'expanded',
|
21
|
-
:dependencies => ['<jquery/latest>'],
|
22
|
-
:autoload => ['
|
23
|
-
:base_url => 'http://www.example.com/',
|
24
|
-
:test_path => 'tests/'
|
17
|
+
:dependencies => ['"<jquery/latest>"'],
|
18
|
+
:autoload => ['"../lib/utilities"']
|
25
19
|
}
|
20
|
+
|
21
|
+
@asset_root = @project_path
|
26
22
|
|
27
23
|
@defaults.each do |label, setting|
|
28
24
|
instance_variable_set("@#{label}", setting)
|
@@ -34,16 +30,14 @@ module Ninjs
|
|
34
30
|
end
|
35
31
|
|
36
32
|
def create
|
37
|
-
|
38
|
-
options.delete :app_filename
|
39
|
-
default_content = conf_content options
|
40
|
-
create_conf_file default_content
|
33
|
+
create_conf_file conf_content(@defaults)
|
41
34
|
end
|
42
35
|
|
43
36
|
def conf_content(options)
|
44
37
|
content = String.new
|
45
38
|
options.each do |option, value|
|
46
|
-
content << "#{option}: #{value}\n"
|
39
|
+
content << "#{option}: #{value}\n" if value.kind_of? String
|
40
|
+
content << "#{option}: [#{value.join(', ')}]\n" if value.kind_of? Array
|
47
41
|
end
|
48
42
|
content
|
49
43
|
end
|
@@ -55,33 +49,17 @@ module Ninjs
|
|
55
49
|
|
56
50
|
Ninjs::Notification.notify "ninjs.conf created", :added
|
57
51
|
end
|
58
|
-
|
59
|
-
def update
|
60
|
-
options = {
|
61
|
-
:name => @name,
|
62
|
-
:asset_root => @asset_root,
|
63
|
-
:output => @output,
|
64
|
-
:dependencies => @dependencies,
|
65
|
-
:autoload => @autoload,
|
66
|
-
:base_url => @base_url,
|
67
|
-
:test_path => @test_path
|
68
|
-
}
|
69
|
-
options.reject! { |option| option.nil? }
|
70
|
-
|
71
|
-
content = conf_content options
|
72
|
-
create_conf_file content
|
73
|
-
end
|
74
|
-
|
52
|
+
|
75
53
|
def read
|
76
54
|
config = YAML.load_file("#{@project_path}ninjs.conf")
|
77
|
-
|
55
|
+
|
78
56
|
@name = config['name']
|
79
|
-
@app_filename = config['name'].downcase
|
80
57
|
@output = config['output']
|
58
|
+
|
81
59
|
@dependencies = config['dependencies'] || Array.new
|
82
60
|
@autoload = config['autoload'] || Array.new
|
83
|
-
|
84
|
-
@
|
61
|
+
|
62
|
+
@asset_root = config['asset_root'] unless config['ass'].nil?
|
85
63
|
end
|
86
64
|
|
87
65
|
end
|