class Stylesheet < DesignFile belongs_to :design belongs_to :desktop_widget 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(/[\\\"]/, '') image = images.detect{ |i| i.file_identifier.eql?(name) } rescue nil image.update_attribute(:in_css, true) if image file_name = image.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 self.save } end def parse_widgets_urls orig_content = content = self.file.read.force_encoding("UTF-8") # self.remove_file! # self.remove_file_orig! names = [] images = self.desktop_widget.images content.scan(/(?<=url)(.*?)(?=\))/){ css_name = $1.gsub(' ','').gsub('(','') name = File.basename(css_name).gsub(/[\\\"]/, '') image = images.detect{ |i| i.file_identifier.eql?(name) } rescue nil image.update_attribute(:in_css, true) if image file_name = image.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 self.save } end end