34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class Stylesheet < DesignFile
 | |
|   embedded_in :design
 | |
|   mount_uploader :file_orig, AssetUploader
 | |
|   
 | |
|   def parse_urls
 | |
|     orig_content = content = self.file.read.force_encoding("UTF-8")
 | |
|     # self.remove_file!
 | |
|     # self.remove_file_orig!
 | |
|     names = []
 | |
|     images = self.design.images
 | |
|     content.scan(/(?<=url)(.*?)(?=\))/){
 | |
|       css_name = $1.gsub(' ','').gsub('(','')
 | |
|       name = File.basename(css_name).gsub(/[\\\"]/, '')
 | |
|       file_name = images.detect{ |i| i.file_identifier.eql?(name) }.file_url rescue nil
 | |
|       names << [css_name, file_name]
 | |
|     }
 | |
|     names.each do |name|
 | |
|       content.gsub!(name[0], name[1]) if name[1]
 | |
|     end
 | |
|     Dir.mktmpdir('f_path') { |dir|
 | |
|       orig_file_name = self.file_identifier
 | |
|       
 | |
|       temp_file = File.new(dir + '/' + orig_file_name, 'w+')
 | |
|       temp_file.write orig_content.force_encoding("UTF-8")
 | |
|       self.file_orig = temp_file
 | |
|       
 | |
|       temp_file = File.new(dir + '/' + orig_file_name, 'w+')
 | |
|       temp_file.write content.force_encoding("UTF-8")
 | |
|       self.file = temp_file
 | |
|     }    
 | |
|   end
 | |
|   
 | |
| end
 |