Sha256: 186a5868d00f4835f31ce552020423dc0d5d838005acf48d69176ab98a03d099
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
module Egnyte class Folder < Item def create(path) path = Egnyte::Helper.normalize_path(path) new_folder_path = "#{self.path}/#{path}" new_folder_path = URI.escape(new_folder_path) @session.post("#{fs_path}#{new_folder_path}", JSON.dump({ action: 'add_folder' })) Folder::find(@session, new_folder_path) end def delete @session.delete("#{fs_path}/#{URI.escape(path)}") end def upload(filename, content) @session.multipart_post("#{fs_path('fs-content')}#{URI.escape(path)}/#{URI.escape(filename)}", filename, content) File::find(@session, "#{path}/#{filename}") 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
egnyte-0.0.5 | lib/egnyte/folder.rb |