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
Methods included from Api::Helpers::Accessor
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.
175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/groupdocs/storage/folder.rb', line 175 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.
203 204 205 |
# File 'lib/groupdocs/storage/folder.rb', line 203 def create!(access = {}) self.class.create! prepare_path("#{path}/#{name}"), access end |
#delete!(access = {}) ⇒ Object
Deletes folder from server.
214 215 216 217 218 219 220 |
# File 'lib/groupdocs/storage/folder.rb', line 214 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.
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/groupdocs/storage/folder.rb', line 116 def list!( = {}, access = {}) if [:order_by] [:order_by] = [:order_by].camelize end 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.
152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/groupdocs/storage/folder.rb', line 152 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.
230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/groupdocs/storage/folder.rb', line 230 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.
278 279 280 281 282 283 284 |
# File 'lib/groupdocs/storage/folder.rb', line 278 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.
253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 |
# File 'lib/groupdocs/storage/folder.rb', line 253 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 |