Sha256: 17f306651f4682d2c03d41f004c95223e599d372e495f35b25f2202878e1af2b
Contents?: true
Size: 1.72 KB
Versions: 2
Compression:
Stored size: 1.72 KB
Contents
module Egnyte class Folder < Item def create(path) path = Egnyte::Helper.normalize_path(path) new_folder_path = "#{self.path}/#{path}" @session.post("#{fs_path}#{URI.escape(new_folder_path)}", JSON.dump({ action: 'add_folder' })) Folder.new({ 'path' => new_folder_path, 'folders' => [], 'is_folder' => true, 'name' => new_folder_path.split('/').pop }, @session) end def delete @session.delete("#{fs_path}/#{URI.escape(path)}") end def upload(filename, content) resp = @session.multipart_post("#{fs_path('fs-content')}#{URI.escape(path)}/#{URI.escape(filename)}", filename, content, false) content.rewind # to calculate size, rewind content stream. File.new({ 'is_folder' => false, 'entry_id' => resp['ETag'], 'checksum' => resp['X-Sha512-Checksum'], 'last_modified' => resp['Last-Modified'], 'name' => filename, 'size' => content.size }, @session) end def files create_objects(File, 'files') end def folders create_objects(Folder, 'folders') end def self.find(session, path) path = Egnyte::Helper.normalize_path(path) folder = Folder.new({ 'path' => path }, session) parsed_body = session.get("#{folder.fs_path}#{URI.escape(path)}") raise FolderExpected unless parsed_body['is_folder'] folder.update_data(parsed_body) end private def create_objects(klass, key) return [] unless @data[key] @data[key].map do |data| data = data.merge({ 'path' => "#{path}/#{data['name']}" }) klass.new(data, @session) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
egnyte-1.0.0 | lib/egnyte/folder.rb |
egnyte-0.1.0 | lib/egnyte/folder.rb |