automate get files with anyname

This commit is contained in:
Kaito 2011-08-15 18:47:02 +08:00
parent 16001fb2c9
commit 8895b9fe20
1 changed files with 40 additions and 9 deletions

View File

@ -27,17 +27,48 @@ class Admin::DesignsController < ApplicationController
Zip::ZipFile.open(file) { |zip_file| Zip::ZipFile.open(file) { |zip_file|
design = Design.new.from_json(zip_file.read("#{zip_name}/info.json")) design = Design.new.from_json(zip_file.read("#{zip_name}/info.json"))
Dir.mktmpdir('f_path') { |dir| Dir.mktmpdir('f_path') { |dir|
title = 'layout.html' #design.layout_filename Should be layout file name,set to be fetch #layout_entry =""
temp_file = File.new(dir + '/' + title, 'w+') #dir/zip_name #struct_css_entry =""
temp_file.write zip_file.read(zip_name + '/' + title)
debugger
design.build_layout design.build_layout
design.layout.file = temp_file themes_entries = []
javascripts_entries = []
images_entries = []
debugger
temp_file4layout = File.new(dir + '/' + zip_name+'-1', 'w+')
temp_file4layout.binmode
#dir/zip_name
temp_file4structure = File.new(dir + '/' + zip_name+'-2', 'w+')
temp_file4structure.binmode
#dir/zip_name
zip_file.entries.each do |entry|
case (path = entry.to_s)
when /\A(#{zip_name})\/[^\/]*(\.css)\z/ #for structure css
# struct_css_entry = entry
temp_file4structure.write (zip_file.read entry )
design.structure_css = temp_file4structure
when /\A(#{zip_name})\/[^\/]*(\.html)\z/ #for layout html
# layout_entry = entry
temp_file4layout.write (zip_file.read entry )
design.layout.file = temp_file4structure
design.layout.to_save=true
when /\A(#{zip_name})\/(themes)\/.*(\.css)\z/ #for themes css
themes_entries << entry
when /\A(#{zip_name})\/(javascripts)\/.*(\.js)\z/ #for js
javascripts_entries << entry
when /\A(#{zip_name})\/(images)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img
images_entries << entry
end
end
debugger
['themes', 'javascripts', 'images'].each do |type| ['themes', 'javascripts', 'images'].each do |type|
eval("design.#{type}").each do |object| #incompleted
title = object.file_filename eval("#{type}.entries").each do |entry|
temp_file = File.new(dir + '/' + title, 'w+') title = File.basename entry
temp_file.write zip_file.read(zip_name + '/' + type + '/' + title) debugger
temp_file = File.new(dir + '/' + title+'-3', 'w+')
temp_file.write zip_file.read entry
object.file = temp_file object.file = temp_file
object.to_save = true object.to_save = true
end end