Class: GroupDocs::Storage::Folder
- Inherits:
-
Api::Entity
- Object
- Api::Entity
- GroupDocs::Storage::Folder
- Includes:
- Api::Helpers::AccessMode, Api::Helpers::Path
- Defined in:
- lib/groupdocs/storage/folder.rb
Instance Attribute Summary collapse
-
#access ⇒ Symbol
Converts access mode to human-readable format.
-
#created_on ⇒ Time
Converts timestamp which is return by API server to Time object.
- #file_count ⇒ Object
- #folder_count ⇒ Object
- #id ⇒ Object
-
#modified_on ⇒ Time
Converts timestamp which is return by API server to Time object.
- #name ⇒ Object
- #path ⇒ Object
- #size ⇒ Object
- #type ⇒ Object
- #url ⇒ Object
- #version ⇒ Object
Class Method Summary collapse
-
.create!(path, access = {}) ⇒ GroupDocs::Storage::Folder
Creates folder on server.
-
.list!(path = '', options = {}, access = {}) ⇒ Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>
Returns a list of all directories and files in the path.
Instance Method Summary collapse
-
#copy!(destination, access = {}) ⇒ String
Copies folder contents to given path.
-
#create!(access = {}) ⇒ GroupDocs::Storage::Folder
Creates folder on server.
-
#delete!(access = {}) ⇒ Object
Deletes folder from server.
-
#list!(options = {}, access = {}) ⇒ Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>
Returns an array of files and folders.
-
#move!(destination, access = {}) ⇒ String
Moves folder contents to given path.
-
#sharers!(access = {}) ⇒ Array<GroupDocs::User>
Returns an array of users a folder is shared with.
-
#sharers_clear!(access = {}) ⇒ Object
Clears sharers list.
-
#sharers_set!(emails, access = {}) ⇒ Array<GroupDocs::User>
Sets folder sharers to given emails.
Methods included from Api::Helpers::Path
Methods inherited from Api::Entity
#initialize, #inspect, #to_hash
Constructor Details
This class inherits a constructor from GroupDocs::Api::Entity
Instance Attribute Details
#access ⇒ Symbol
Converts access mode to human-readable format.
71 72 73 |
# File 'lib/groupdocs/storage/folder.rb', line 71 def access @access end |
#created_on ⇒ Time
Converts timestamp which is return by API server to Time object.
57 58 59 |
# File 'lib/groupdocs/storage/folder.rb', line 57 def created_on @created_on end |
#file_count ⇒ Object
55 56 57 |
# File 'lib/groupdocs/storage/folder.rb', line 55 def file_count @file_count end |
#folder_count ⇒ Object
53 54 55 |
# File 'lib/groupdocs/storage/folder.rb', line 53 def folder_count @folder_count end |
#id ⇒ Object
49 50 51 |
# File 'lib/groupdocs/storage/folder.rb', line 49 def id @id end |
#modified_on ⇒ Time
Converts timestamp which is return by API server to Time object.
59 60 61 |
# File 'lib/groupdocs/storage/folder.rb', line 59 def modified_on @modified_on end |
#name ⇒ Object
63 64 65 |
# File 'lib/groupdocs/storage/folder.rb', line 63 def name @name end |
#path ⇒ Object
65 66 67 |
# File 'lib/groupdocs/storage/folder.rb', line 65 def path @path end |
#size ⇒ Object
51 52 53 |
# File 'lib/groupdocs/storage/folder.rb', line 51 def size @size end |
#type ⇒ Object
69 70 71 |
# File 'lib/groupdocs/storage/folder.rb', line 69 def type @type end |
#url ⇒ Object
61 62 63 |
# File 'lib/groupdocs/storage/folder.rb', line 61 def url @url end |
#version ⇒ Object
67 68 69 |
# File 'lib/groupdocs/storage/folder.rb', line 67 def version @version end |
Class Method Details
.create!(path, access = {}) ⇒ GroupDocs::Storage::Folder
Creates folder on server.
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/groupdocs/storage/folder.rb', line 17 def self.create!(path, access = {}) path = prepare_path(path) json = Api::Request.new do |request| request[:access] = access request[:method] = :POST request[:path] = "/storage/{{client_id}}/paths/#{path}" end.execute! Storage::Folder.new(json) end |
.list!(path = '', options = {}, access = {}) ⇒ Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>
Returns a list of all directories and files in the path.
43 44 45 46 |
# File 'lib/groupdocs/storage/folder.rb', line 43 def self.list!(path = '', = {}, access = {}) path = prepare_path(path) new(path: path).list!(, access) end |
Instance Method Details
#copy!(destination, access = {}) ⇒ String
Copies folder contents to given path.
169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/groupdocs/storage/folder.rb', line 169 def copy!(destination, access = {}) src_path = prepare_path(path) dst_path = prepare_path("#{destination}/#{name}") Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:headers] = { :'Groupdocs-Copy' => src_path } request[:path] = "/storage/{{client_id}}/folders/#{dst_path}" end.execute! dst_path end |
#create!(access = {}) ⇒ GroupDocs::Storage::Folder
Creates folder on server.
Note that it doesn’t update self and instead returns new instance.
197 198 199 |
# File 'lib/groupdocs/storage/folder.rb', line 197 def create!(access = {}) self.class.create! prepare_path("#{path}/#{name}"), access end |
#delete!(access = {}) ⇒ Object
Deletes folder from server.
208 209 210 211 212 213 214 |
# File 'lib/groupdocs/storage/folder.rb', line 208 def delete!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/storage/{{client_id}}/folders/#{prepare_path("#{path}/#{name}")}" end.execute! end |
#list!(options = {}, access = {}) ⇒ Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>
Returns an array of files and folders.
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/groupdocs/storage/folder.rb', line 113 def list!( = {}, access = {}) [:order_by].capitalize! if [:order_by] full_path = prepare_path("#{path}/#{name}") api = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/storage/{{client_id}}/folders/#{full_path}" end api.add_params() json = api.execute! folders = json[:folders].map do |folder| folder.merge!(path: full_path) Storage::Folder.new(folder) end files = json[:files].map do |file| file.merge!(path: full_path) Storage::File.new(file) end folders + files end |
#move!(destination, access = {}) ⇒ String
Moves folder contents to given path.
146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/groupdocs/storage/folder.rb', line 146 def move!(destination, access = {}) src_path = prepare_path(path) dst_path = prepare_path("#{destination}/#{name}") Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:headers] = { :'Groupdocs-Move' => src_path } request[:path] = "/storage/{{client_id}}/folders/#{dst_path}" end.execute! dst_path end |
#sharers!(access = {}) ⇒ Array<GroupDocs::User>
Returns an array of users a folder is shared with.
224 225 226 227 228 229 230 231 232 233 234 |
# File 'lib/groupdocs/storage/folder.rb', line 224 def sharers!(access = {}) json = Api::Request.new do |request| request[:access] = access request[:method] = :GET request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers" end.execute! json[:shared_users].map do |user| User.new(user) end end |
#sharers_clear!(access = {}) ⇒ Object
Clears sharers list.
272 273 274 275 276 277 278 |
# File 'lib/groupdocs/storage/folder.rb', line 272 def sharers_clear!(access = {}) Api::Request.new do |request| request[:access] = access request[:method] = :DELETE request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers" end.execute![:shared_users] end |
#sharers_set!(emails, access = {}) ⇒ Array<GroupDocs::User>
Sets folder sharers to given emails.
If empty array or nil passed, clears sharers.
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 |
# File 'lib/groupdocs/storage/folder.rb', line 247 def sharers_set!(emails, access = {}) if emails.nil? || emails.empty? sharers_clear!(access) else json = Api::Request.new do |request| request[:access] = access request[:method] = :PUT request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers" request[:request_body] = emails end.execute! json[:shared_users].map do |user| User.new(user) end end end |