Modification in Design structure_css -> default_css
This commit is contained in:
1 parent
07ccacb7d7
commit
4db88282a1
8 files changed
+79
-69
No files matched your search
@@ -7,12 +7,11 @@ class Design
|
||||
field :intro
|
||||
field :version
|
||||
|
||||
mount_uploader :default_css, AssetUploader
|
||||
mount_uploader :reset_css, AssetUploader
|
||||
|
||||
has_many :pages
|
||||
|
||||
embeds_one :layout
|
||||
embeds_one :default_css, :class_name => "Stylesheet"
|
||||
embeds_one :reset_css, :class_name => "Stylesheet"
|
||||
embeds_many :stylesheets
|
||||
embeds_many :themes
|
||||
embeds_many :javascripts
|
||||
@@ -78,10 +77,14 @@ class Design
|
||||
self.layout.save
|
||||
self.layout.parse_urls
|
||||
end
|
||||
self.themes.each do |theme|
|
||||
to_parse_url = theme.to_save ? true : false
|
||||
process_object(theme)
|
||||
theme.parse_urls if to_parse_url
|
||||
[[self.default_css], [self.reset_css], self.themes].each do |objects|
|
||||
objects.each do |object|
|
||||
if object
|
||||
to_parse_url = object.to_save ? true : false
|
||||
process_object(object)
|
||||
object.parse_urls if to_parse_url
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,3 +1,35 @@
|
||||
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_filename.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_filename
|
||||
|
||||
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
|
||||
@@ -1,40 +1,9 @@
|
||||
class Theme < Stylesheet
|
||||
embedded_in :design
|
||||
field :name
|
||||
mount_uploader :file_orig, AssetUploader
|
||||
|
||||
before_save :set_name
|
||||
|
||||
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_filename.eql?(name) }.file_url rescue nil
|
||||
names << [css_name, file_name]
|
||||
}
|
||||
names.each do |name|
|
||||
content.gsub!(name[0], name[1])
|
||||
end
|
||||
Dir.mktmpdir('f_path') { |dir|
|
||||
orig_file_name = self.file_filename
|
||||
|
||||
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
|
||||
|
||||
protected
|
||||
|
||||
def set_name
|
||||
|
||||
Reference in new issue
Block a user