lib/ninjs/project.rb in ninjs-0.13.4 vs lib/ninjs/project.rb in ninjs-0.13.5
- old
+ new
@@ -20,11 +20,11 @@
dir = '/' << dir unless dir.match(/^\//)
dir
end
def create
- Ninjs::Notification.notice "Creating the #{@config.name} project in #{@project_path}"
+ puts Ninjs::Notification.notice "Creating the #{@config.name} project in #{@project_path}"
create_project_structure
@config.create
create_ninjs_lib_file
create_utility_lib_file
create_ninjs_application_file
@@ -32,11 +32,11 @@
end
def create_project_structure
Dir.mkdir "#{@project_path}" unless File.exists? "#{@project_path}"
Ninjs::Manifest.directories.each do |folder|
- Ninjs::Notification.added "#{folder}/ created" unless File.exists? "#{@project_path}#{folder}"
+ puts Ninjs::Notification.added "#{folder}/ created" unless File.exists? "#{@project_path}#{folder}"
Dir.mkdir "#{@project_path}#{folder}" unless File.exists? "#{@project_path}#{folder}"
end
end
def create_ninjs_lib_file
@@ -47,11 +47,11 @@
:source_files => ["repository/ninjs/core/nin.js"]
)
ninjs_lib_secretary.concatenation.save_to "#{@project_path}lib/nin.js"
- Ninjs::Notification.added "lib/nin.js #{operation}"
+ puts Ninjs::Notification.added "lib/nin.js #{operation}"
end
def create_utility_lib_file
utility_lib_secretary = Sprockets::Secretary.new(
:root => "#{Ninjs::BASE_DIR}",
@@ -59,11 +59,11 @@
:source_files => ["repository/ninjs/utilities/all.js"]
)
utility_lib_secretary.concatenation.save_to "#{@project_path}lib/utilities.js"
- Ninjs::Notification.added "lib/utilities.js created"
+ puts Ninjs::Notification.added "lib/utilities.js created"
end
def create_ninjs_application_file
filename = "#{@project_path}application/#{@app_filename}.js"
@@ -85,11 +85,11 @@
def update
get_updated_modules
compile_modules
update_application_file
compress_application if @config.output == 'compressed'
- Ninjs::Notification.log "application updated" unless @errors
+ puts Ninjs::Notification.log "application updated" unless @errors
@errors = false
end
def get_directory_script_files
script_files = Array.new
@@ -105,49 +105,65 @@
end
timestamped_files
end
def get_updated_modules
- # TODO actually check the files against a cache
@modules = Array.new
- Dir["#{@project_path}modules/*.js"].each do |file|
- module_filename = file.gsub(@project_path + 'modules/', '')
- @modules << module_filename unless module_filename.match(/^_/)
+ if @config.src_dir.is_a? Array
+ @config.src_dir.each do |directory|
+ get_directory_modules "#{@project_path}#{directory}/"
+ end
+ else
+ get_directory_modules "#{@project_path}#{@config.src_dir}/"
end
end
+ def get_directory_modules(directory)
+ Dir["#{directory}*.js"].each do |file|
+ module_filename = file.gsub(directory, '')
+ @modules << "#{directory}#{module_filename}" unless module_filename.match(/^_/)
+ end
+ end
+
def compile_modules
@modules.each do |module_file|
module_filename = Ninjs::Helpers.create_module_filename module_file
create_module_file module_file, module_filename
end
end
+ def create_module_filename(module_name)
+ split = module_name.split(/[\.\-\s]/)
+ module_filename = String.new
+ split.each do |piece|
+ module_filename << piece unless piece.match(/^module$|^js$/i)
+ end
+ module_filename
+ end
+
def create_module_file(module_file, module_name)
begin
- module_src = "#{@project_path}modules/#{module_file}"
-
ninjs_lib_secretary = Sprockets::Secretary.new(
:root => "#{Ninjs::BASE_DIR}",
:asset_root => @config.asset_root,
:load_path => ["repository"],
- :source_files => ["#{module_src}"]
+ :source_files => ["#{module_file}"]
)
module_file = ninjs_lib_secretary.concatenation
- message = File.exists?("#{@project_path}application/#{module_name}.js") ? "\e[32m>>>\e[0m application/#{module_name}.js updated" : "\e[32m>>>\e[0m application/#{module_name}.js created"
- module_file.save_to "#{@project_path}application/#{module_name}.js"
+ message = File.exists?("#{@project_path}#{@config.dest_dir}/#{module_name}.js") ? "\e[32m>>>\e[0m #{@config.dest_dir}/#{module_name}.js updated" : "\e[32m>>>\e[0m #{@config.dest_dir}/#{module_name}.js created"
+ module_file.save_to "#{@project_path}#{@config.dest_dir}/#{module_name}.js"
ninjs_lib_secretary.install_assets
rescue Exception => error
@errors = true
- Ninjs::Notification.error "Sprockets error: #{error.message}"
+ puts Ninjs::Notification.error "Sprockets error: #{error.message}"
end
end
def update_application_file
- application_file = "#{@project_path}application/#{@app_filename}.js"
+ application_file = "#{@project_path}#{@config.dest_dir}/#{@app_filename}.js"
File.open(application_file, "w+") do |file|
write_dependencies(file)
write_core(file)
write_autoload(file)
@@ -190,15 +206,15 @@
application_file = ninjs_lib_secretary.concatenation
ninjs_lib_secretary.install_assets
application_file.save_to "#{file}"
rescue Exception => error
@errors = true
- Ninjs::Notification.error "Sprockets error: #{error.message}"
+ puts Ninjs::Notification.error "Sprockets error: #{error.message}"
end
end
def compress_application
- application = @project_path + 'application'
+ application = @project_path + '#{@config.dest_dir}'
modules = Dir.entries(application)
modules.reject! { |file| file =~ /^\./ }
modules.each do |module_file|
full_path = application + "/#{module_file}"
\ No newline at end of file