class Egnyte::Folder
Public Class Methods
create(session, path)
click to toggle source
# File lib/egnyte/folder.rb, line 24 def self.create(session, path) path = Egnyte::Helper.normalize_path(path) session.post("#{Egnyte::Item.fs_path(session)}#{path}", JSON.dump({ action: 'add_folder' })) Folder.new({ 'path' => path, 'folders' => [], 'is_folder' => true, 'name' => path.split('/').pop }, session) end
delete(session, path)
click to toggle source
# File lib/egnyte/folder.rb, line 42 def self.delete(session, path) session.delete("#{Egnyte::Item.fs_path(session)}/#{path}") end
find(session, path)
click to toggle source
# File lib/egnyte/folder.rb, line 69 def self.find(session, path) path = Egnyte::Helper.normalize_path(path) folder = Folder.new({ 'path' => path }, session) parsed_body = session.get("#{folder.fs_path}#{path}") raise FolderExpected unless parsed_body['is_folder'] folder.update_data(parsed_body) end
Public Instance Methods
apply_permissions(permission_object)
click to toggle source
# File lib/egnyte/folder.rb, line 95 def apply_permissions(permission_object) Egnyte::Permission.apply(@session, permission_object, @data['path']) end
create(path)
click to toggle source
# File lib/egnyte/folder.rb, line 18 def create(path) path = Egnyte::Helper.normalize_path(path) new_folder_path = "#{self.path}/#{path}" Egnyte::Folder.create(@session, new_folder_path) end
delete()
click to toggle source
# File lib/egnyte/folder.rb, line 38 def delete Egnyte::Folder.delete(@session, path) end
explicit_permissions(params=nil)
click to toggle source
# File lib/egnyte/folder.rb, line 91 def explicit_permissions(params=nil) Egnyte::Permission.explicit_permissions(@session, @data['path']) end
files()
click to toggle source
# File lib/egnyte/folder.rb, line 61 def files create_objects(File, 'files') end
folders()
click to toggle source
# File lib/egnyte/folder.rb, line 65 def folders create_objects(Folder, 'folders') end
inherited_permissions(params=nil)
click to toggle source
# File lib/egnyte/folder.rb, line 87 def inherited_permissions(params=nil) Egnyte::Permission.inherited_permissions(@session, @data['path']) end
permissions(params=nil)
click to toggle source
# File lib/egnyte/folder.rb, line 83 def permissions(params=nil) Egnyte::Permission.folder_permissions(@session, @data['path']) end
upload(filename, content)
click to toggle source
# File lib/egnyte/folder.rb, line 46 def upload(filename, content) resp = @session.multipart_post("#{fs_path('fs-content')}#{path}/#{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
Private Instance Methods
create_objects(klass, key)
click to toggle source
# File lib/egnyte/folder.rb, line 101 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