Class: Gluttonberg::AssetBulkImport
- Inherits:
-
Object
- Object
- Gluttonberg::AssetBulkImport
- Defined in:
- app/models/gluttonberg/asset_bulk_import.rb
Class Method Summary collapse
-
.make_asset_for_entry(asset_params, current_user, entry, dir) ⇒ Object
taskes zip_entry and dir path.
-
.open_zip_file_and_make_assets(asset_params, current_user) ⇒ Object
makes a new folder (name of the folder is current time stamp) inside tmp folder open zip folder iterate on opened zip folder and make assets for each entry using make_asset_for_entry method removes directory which we made inside tmp folder also removes zip tmp file.
Class Method Details
.make_asset_for_entry(asset_params, current_user, entry, dir) ⇒ Object
taskes zip_entry and dir path. makes assets if its valid then also add it to @new_assets list its responsible of extracting entry and its deleting it. it use file name for making asset.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/models/gluttonberg/asset_bulk_import.rb', line 28 def self.make_asset_for_entry(asset_params, current_user, entry , dir) begin unless self.hidden_file_or_directory?(entry) entry_name = entry.name.gsub("/", "-") filename = File.join(dir,entry_name) entry.extract(filename) file = GbFile.init(filename) asset = prepare_asset(entry_name, file, current_user, asset_params) file.close FileUtils.remove_file(filename) asset end rescue => e Rails.logger.info e end end |
.open_zip_file_and_make_assets(asset_params, current_user) ⇒ Object
makes a new folder (name of the folder is current time stamp) inside tmp folder open zip folder iterate on opened zip folder and make assets for each entry using make_asset_for_entry method removes directory which we made inside tmp folder also removes zip tmp file
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/models/gluttonberg/asset_bulk_import.rb', line 8 def self.open_zip_file_and_make_assets(asset_params, current_user) new_assets = [] zip = asset_params[:file] dir = create_tmp_folder begin Zip::File.open(zip.tempfile.path).each do |entry| asset = self.make_asset_for_entry(asset_params, current_user, entry , dir) new_assets << asset if asset && asset.kind_of?(Gluttonberg::Asset) end zip.tempfile.close rescue => e Rails.logger.info e end FileUtils.rm_r(dir) new_assets end |