complete harrys code

This commit is contained in:
Matt K. Fu committed 2013-04-17 14:29:56 +08:00
1 parent c94a86c3a4
commit 4cbf2fd8b9
7 files changed
+71 -19

No files matched your search

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+71 -19
View File
@@ -1,24 +1,76 @@
# encoding: utf-8
namespace :tiles do
task :destroy_build_tiles => :environment do
Tile.destroy_all
secs = Section.all
dws = DesktopWidget.all
secs.each do |sec,x|
grp = sec.groups.first
t = Tile.new(data_category: "app", data_content: "wikibooks", position: 1, shape: "w1 h1", title: "WikiBooks")
grp.tiles+=[t]
t = Tile.new(data_category: "app", data_content: "envocab", position: 2, shape: "w1 h1", title: "English Vocabulary")
grp.tiles+=[t]
@i = 3
dws.each do |dw|
t = Tile.new(data_category: "widget", position: @i,desktop_widget_id: dw.id)
@i = @i + 1
grp.tiles+=[t]
end
grp.save!
require 'zip/zip'
namespace :desktop do
task :upload_all_packages => :environment do
DesktopWidget.destroy_all
# 1. DesktopWidget.destroy_all
# 2. Upload alll the widgets
# 3. Tun rake task tiles:destroy_build_tiles
package_location = "lib/desktop_widgets/"
widget_packages = %w[browser.zip googlescholar.zip quotes.zip clock.zip googlesearch.zip weather.zip]
widget_packages.each do |package_file_name|
temp_file = Tempfile.new("temp_file")
original_file = File.open(package_location+package_file_name)
#if original_file.content_type == 'application/zip'
temp_file.write(original_file.read.force_encoding('UTF-8'))
temp_file.rewind
filename = File.basename(package_file_name,".zip")
unzip_widget(temp_file, filename)
#else
# flash[:error] = "Upload file should be in zip format"
#end
temp_file.close
end
Rake::Task["tiles:destroy_build_tiles"].execute
end
def unzip_widget(file, zip_name)
Zip::ZipFile.open(file) { |zip_file|
dw = DesktopWidget.new.from_json(zip_file.read("#{zip_name}/settings.json"))
Dir.mktmpdir('f_path') { |dir|
javascripts_entries = []
images_entries = []
zip_file.entries.each do |entry|
case (path = entry.to_s)
when /\A(#{zip_name})\/(default\.css)\z/
#for default css
dw.build_css_default(:file => get_temp_file(zip_file, dir, entry))
when /\A(#{zip_name})\/(widget\.html)\z/ #for layout html
dw.build_widget_layout(:file => get_temp_file(zip_file, dir, 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
['javascripts', 'images'].each do |type|
eval("#{type}_entries").each do |entry|
eval("dw.#{type}").build(:file => get_temp_file(zip_file, dir, entry))
end
end
}
dw.save
}
end
def get_temp_file(zip_file, dir, entry)
filename = File.basename(entry.to_s)
temp_file = File.new(dir + '/' + filename, 'w+')
temp_file.write (zip_file.read entry ).force_encoding('UTF-8')
temp_file
end
task :destroy_build_desktop => :environment do
Desktop.all.destroy_all
u = User.all
u.each do |us|
Thread.new {
us.initialize_desktop.save!
puts "Desktop created for " + us.email.to_s
}.join
end
puts "Section " + x + " done!"
end
end