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