module Capucine class Incloudr require 'open-uri' require 'fileutils' require 'json' # require 'uglifier' require 'packr' @@noderoot = 'http://registry.npmjs.org/' def self.run_once files = Capucine.settings.config['incloudr_libs'] return false if files.length == 0 dir = File.join(Capucine.settings.working_dir, Capucine.settings.config['incloudr_output_dir']) FileUtils.rm_r dir if File.exist?(dir) FileUtils.mkdir_p dir files.each {|file| self.pack file} puts "[incloudr] - Packaged" end def self.pack file self.url(file) if file['type'] == 'url' self.npm(file) if file['type'] == 'npm' end def self.url file output = File.join(Capucine.settings.working_dir, Capucine.settings.config['incloudr_output_dir'], file['name'].gsub(/$/, '.js')) output_min = File.join(Capucine.settings.working_dir, Capucine.settings.config['incloudr_output_dir'], file['name'].gsub(/$/, '.min.js')) content = open(file['source']).read content_min = "" content_min << Packr.pack(content) f1 = File.open(output, 'w+') f1.write(content) f1.close f2 = File.open(output_min, 'w+') f2.write(content_min) f2.close end def self.npm file # infos = JSON.parse open("#{@@noderoot}#{file['name']}").read # version = file['version'] || infos['dist-tags']['lastest'] # lib = infos['versions'][version] # tarball_url = lib['dist']['tarball'] # tarball = open(tarball_url).read p version end # def self.pack files # s = Capucine.settings # out = File.join s.working_dir, s.config['incloudr_output_dir'] # output_file = File.join out, base # output_file_min = File.join out, base.gsub('.js', '.min.js') # FileUtils.mkdir_p out if not File.exist?(out) # content = "" # files.each do |js_file| # extended = File.join s.working_dir, js_file # content << File.read(extended) if File.exist?(extended) # end # f = File.open(output_file, 'w') # f.write('') # f.write(content) # f.close # end # def self.lib_root # return "http://dln.name/" # end # def self.compress file # return if not File.exist?(file) # file_name = file.gsub '.js', '' # output_file = "#{file_name}.js" # output_file_min = "#{file_name}.min.js" # end # def self.get_lib lib # lib_name = lib[0] # lib_version = lib[1] # lib_url = "#{self.lib_root}#{lib_name}/#{lib_version}" # lib_url_min = "#{lib_url}/min" # lib_url_cdn = open(lib_url).read # lib_url_cdn_min = open(lib_url_min).read # lib_content = open(lib_url_cdn).read # lib_content_min = open(lib_url_cdn_min).read # total = [lib_content, lib_content_min] # end end end