complete harrys code
This commit is contained in:
1 parent
c94a86c3a4
commit
4cbf2fd8b9
7 files changed
+71
-19
No files matched your search
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
+71
-19
@@ -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
|
||||
Reference in new issue
Block a user