Class: Files::Folder
- Inherits:
-
Object
- Object
- Files::Folder
- Defined in:
- lib/files.com/models/folder.rb
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
- #pos ⇒ Object
Class Method Summary collapse
- .[](*_) ⇒ Object
- .chdir(path, &block) ⇒ Object
- .children(path, _encoding = "") ⇒ Object
- .chroot(*args) ⇒ Object
-
.create(path, params = {}, options = {}) ⇒ Object
Parameters: path (required) - string - Path to operate on.
- .delete(path, params = {}, options = {}) ⇒ Object
- .destroy(path, params = {}, options = {}) ⇒ Object
- .each_child(path, _encoding = "", &block) ⇒ Object
- .empty?(*_args) ⇒ Boolean
- .entries(path) ⇒ Object
- .exist?(*args) ⇒ Boolean
- .find(path, params = {}, options = {}) ⇒ Object
- .foreach(path, _encoding = "", params = {}, options = {}, &block) ⇒ Object
- .get(path, params = {}, options = {}) ⇒ Object
- .getwd(*_args) ⇒ Object
- .glob(*_) ⇒ Object
- .home(*_args) ⇒ Object
-
.list_for(path, params = {}, options = {}) ⇒ Object
Parameters: cursor - string - Send cursor to resume an existing list from the point at which you left off.
- .mkdir(path, params = {}, options = {}) ⇒ Object
- .open(*args, &block) ⇒ Object
- .pwd(*_args) ⇒ Object
- .rmdir(path) ⇒ Object
- .unlink(path) ⇒ Object
- .update(path, params = {}, options = {}) ⇒ Object
Instance Method Summary collapse
- #close(*args) ⇒ Object
- #contents ⇒ Object
-
#crc32 ⇒ Object
string - File CRC32 checksum.
- #crc32=(value) ⇒ Object
-
#created_at ⇒ Object
date-time - File created date/time.
-
#display_name ⇒ Object
string - File/Folder display name.
- #display_name=(value) ⇒ Object
-
#download_uri ⇒ Object
string - Link to download file.
- #download_uri=(value) ⇒ Object
- #each(&block) ⇒ Object
- #fileno ⇒ Object
-
#initialize(*args) ⇒ Folder
constructor
A new instance of Folder.
-
#is_locked ⇒ Object
boolean - Is this folder locked and unable to be modified?.
- #is_locked=(value) ⇒ Object
-
#md5 ⇒ Object
string - File MD5 checksum.
- #md5=(value) ⇒ Object
-
#mime_type ⇒ Object
string - MIME Type.
- #mime_type=(value) ⇒ Object
-
#mkdir_parents ⇒ Object
boolean - Create parent directories if they do not exist?.
- #mkdir_parents=(value) ⇒ Object
-
#mtime ⇒ Object
date-time - File last modified date/time, according to the server.
- #mtime=(value) ⇒ Object
-
#path ⇒ Object
string - File/Folder path This must be slash-delimited, but it must neither start nor end with a slash.
- #path=(value) ⇒ Object
-
#permissions ⇒ Object
string - A short string representing the current user’s permissions.
- #permissions=(value) ⇒ Object
-
#preview ⇒ Object
Preview - File preview.
- #preview=(value) ⇒ Object
-
#preview_id ⇒ Object
int64 - File preview ID.
- #preview_id=(value) ⇒ Object
-
#priority_color ⇒ Object
string - Bookmark/priority color of file/folder.
- #priority_color=(value) ⇒ Object
-
#provided_mtime ⇒ Object
date-time - File last modified date/time, according to the client who set it.
- #provided_mtime=(value) ⇒ Object
- #read(*_args) ⇒ Object
-
#region ⇒ Object
string - Region location.
- #region=(value) ⇒ Object
- #rewind ⇒ Object
- #save ⇒ Object
- #seek(pos) ⇒ Object
-
#size ⇒ Object
int64 - File/Folder size.
- #size=(value) ⇒ Object
- #stats ⇒ Object
- #subfolders_locked=(value) ⇒ Object
-
#subfolders_locked? ⇒ Boolean
boolean - Are subfolders locked and unable to be modified?.
- #tell ⇒ Object
- #to_path ⇒ Object
-
#type ⇒ Object
string - Type: ‘directory` or `file`.
- #type=(value) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Folder
Returns a new instance of Folder.
103 104 105 106 107 |
# File 'lib/files.com/models/folder.rb', line 103 def initialize(*args) @attributes = (args[0].is_a?(Hash) && args[0]) || {} @options = (args[1].is_a?(Hash) && args[1]) || {} @attributes['path'] = args[0] if args[0].is_a?(String) end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
5 6 7 |
# File 'lib/files.com/models/folder.rb', line 5 def attributes @attributes end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
5 6 7 |
# File 'lib/files.com/models/folder.rb', line 5 def @options end |
#pos ⇒ Object
127 128 129 |
# File 'lib/files.com/models/folder.rb', line 127 def pos @pos ||= 0 end |
Class Method Details
.[](*_) ⇒ Object
7 8 9 |
# File 'lib/files.com/models/folder.rb', line 7 def self.[](*_) raise NotImplementedError end |
.chdir(path, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/files.com/models/folder.rb', line 11 def self.chdir(path, &block) raise Errno::ENOENT.new(path) if exist? path if block yield path else @@path ||= path end end |
.children(path, _encoding = "") ⇒ Object
21 22 23 |
# File 'lib/files.com/models/folder.rb', line 21 def self.children(path, _encoding = "") Folder.new(path).contents.map(&:path) end |
.chroot(*args) ⇒ Object
25 |
# File 'lib/files.com/models/folder.rb', line 25 def self.chroot(*args); end |
.create(path, params = {}, options = {}) ⇒ Object
Parameters:
path (required) - string - Path to operate on.
mkdir_parents - boolean - Create parent directories if they do not exist?
provided_mtime - string - User provided modification time.
355 356 357 358 359 360 361 362 363 364 |
# File 'lib/files.com/models/folder.rb', line 355 def self.create(path, params = {}, = {}) params ||= {} params[:path] = path raise InvalidParameterError.new("Bad parameter: path must be an String") if params[:path] and !params[:path].is_a?(String) raise InvalidParameterError.new("Bad parameter: provided_mtime must be an String") if params[:provided_mtime] and !params[:provided_mtime].is_a?(String) raise MissingParameterError.new("Parameter missing: path") unless params[:path] response, = Api.send_request("/folders/#{params[:path]}", :post, params, ) File.new(response.data, ) end |
.delete(path, params = {}, options = {}) ⇒ Object
27 28 29 |
# File 'lib/files.com/models/folder.rb', line 27 def self.delete(path, params = {}, = {}) File.delete(path, params, ) end |
.destroy(path, params = {}, options = {}) ⇒ Object
31 32 33 |
# File 'lib/files.com/models/folder.rb', line 31 def self.destroy(path, params = {}, = {}) File.destroy(path, params, ) end |
.each_child(path, _encoding = "", &block) ⇒ Object
35 36 37 |
# File 'lib/files.com/models/folder.rb', line 35 def self.each_child(path, _encoding = "", &block) Folder.new(path).each(&block) end |
.empty?(*_args) ⇒ Boolean
39 40 41 |
# File 'lib/files.com/models/folder.rb', line 39 def self.empty?(*_args) Folder.new(path).contents.empty? end |
.entries(path) ⇒ Object
43 44 45 |
# File 'lib/files.com/models/folder.rb', line 43 def self.entries(path) list(path) end |
.exist?(*args) ⇒ Boolean
47 48 49 |
# File 'lib/files.com/models/folder.rb', line 47 def self.exist?(*args) File.exist?(*args) end |
.find(path, params = {}, options = {}) ⇒ Object
51 52 53 |
# File 'lib/files.com/models/folder.rb', line 51 def self.find(path, params = {}, = {}) File.find(path, params, ) end |
.foreach(path, _encoding = "", params = {}, options = {}, &block) ⇒ Object
59 60 61 |
# File 'lib/files.com/models/folder.rb', line 59 def self.foreach(path, _encoding = "", params = {}, = {}, &block) list_for(path, params, ).each { |x| block.call(x) } end |
.get(path, params = {}, options = {}) ⇒ Object
55 56 57 |
# File 'lib/files.com/models/folder.rb', line 55 def self.get(path, params = {}, = {}) File.get(path, params, ) end |
.getwd(*_args) ⇒ Object
63 64 65 |
# File 'lib/files.com/models/folder.rb', line 63 def self.getwd(*_args) pwd end |
.glob(*_) ⇒ Object
67 68 69 |
# File 'lib/files.com/models/folder.rb', line 67 def self.glob(*_) raise NotImplementedError end |
.home(*_args) ⇒ Object
71 72 73 |
# File 'lib/files.com/models/folder.rb', line 71 def self.home(*_args) "" end |
.list_for(path, params = {}, options = {}) ⇒ Object
Parameters:
cursor - string - Send cursor to resume an existing list from the point at which you left off. Get a cursor from an existing list via the X-Files-Cursor-Next header or the X-Files-Cursor-Prev header.
per_page - int64 - Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
path (required) - string - Path to operate on.
filter - string - If specified, will filter folders/files list by this string. Wildcards of `*` and `?` are acceptable here.
preview_size - string - Request a preview size. Can be `small` (default), `large`, `xlarge`, or `pdf`.
search - string - If `search_all` is `true`, provide the search string here. Otherwise, this parameter acts like an alias of `filter`.
search_all - boolean - Search entire site? If set, we will ignore the folder path provided and search the entire site. This is the same API used by the search bar in the UI. Search results are a best effort, not real time, and not guaranteed to match every file. This field should only be used for ad-hoc (human) searching, and not as part of an automated process.
with_previews - boolean - Include file previews?
with_priority_color - boolean - Include file priority color information?
335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 |
# File 'lib/files.com/models/folder.rb', line 335 def self.list_for(path, params = {}, = {}) params ||= {} params[:path] = path raise InvalidParameterError.new("Bad parameter: cursor must be an String") if params[:cursor] and !params[:cursor].is_a?(String) raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params[:per_page] and !params[:per_page].is_a?(Integer) raise InvalidParameterError.new("Bad parameter: path must be an String") if params[:path] and !params[:path].is_a?(String) raise InvalidParameterError.new("Bad parameter: filter must be an String") if params[:filter] and !params[:filter].is_a?(String) raise InvalidParameterError.new("Bad parameter: preview_size must be an String") if params[:preview_size] and !params[:preview_size].is_a?(String) raise InvalidParameterError.new("Bad parameter: search must be an String") if params[:search] and !params[:search].is_a?(String) raise MissingParameterError.new("Parameter missing: path") unless params[:path] List.new(File, params) do Api.send_request("/folders/#{params[:path]}", :get, params, ) end end |
.mkdir(path, params = {}, options = {}) ⇒ Object
75 76 77 |
# File 'lib/files.com/models/folder.rb', line 75 def self.mkdir(path, params = {}, = {}) create(path, params, ) end |
.open(*args, &block) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/files.com/models/folder.rb', line 79 def self.open(*args, &block) if block.nil? new *args else yield new *args end end |
.pwd(*_args) ⇒ Object
87 88 89 |
# File 'lib/files.com/models/folder.rb', line 87 def self.pwd(*_args) @@path ||= "" end |
.rmdir(path) ⇒ Object
91 92 93 |
# File 'lib/files.com/models/folder.rb', line 91 def self.rmdir(path) delete(path) end |
.unlink(path) ⇒ Object
95 96 97 |
# File 'lib/files.com/models/folder.rb', line 95 def self.unlink(path) delete(path) end |
Instance Method Details
#close(*args) ⇒ Object
109 |
# File 'lib/files.com/models/folder.rb', line 109 def close(*args); end |
#contents ⇒ Object
119 120 121 |
# File 'lib/files.com/models/folder.rb', line 119 def contents @contents ||= Folder.list(path, {}, @options) end |
#crc32 ⇒ Object
string - File CRC32 checksum. This is sometimes delayed, so if you get a blank response, wait and try again.
213 214 215 |
# File 'lib/files.com/models/folder.rb', line 213 def crc32 @attributes[:crc32] end |
#crc32=(value) ⇒ Object
217 218 219 |
# File 'lib/files.com/models/folder.rb', line 217 def crc32=(value) @attributes[:crc32] = value end |
#created_at ⇒ Object
date-time - File created date/time
190 191 192 |
# File 'lib/files.com/models/folder.rb', line 190 def created_at @attributes[:created_at] end |
#display_name ⇒ Object
string - File/Folder display name
163 164 165 |
# File 'lib/files.com/models/folder.rb', line 163 def display_name @attributes[:display_name] end |
#display_name=(value) ⇒ Object
167 168 169 |
# File 'lib/files.com/models/folder.rb', line 167 def display_name=(value) @attributes[:display_name] = value end |
#download_uri ⇒ Object
string - Link to download file. Provided only in response to a download request.
276 277 278 |
# File 'lib/files.com/models/folder.rb', line 276 def download_uri @attributes[:download_uri] end |
#download_uri=(value) ⇒ Object
280 281 282 |
# File 'lib/files.com/models/folder.rb', line 280 def download_uri=(value) @attributes[:download_uri] = value end |
#each(&block) ⇒ Object
111 112 113 |
# File 'lib/files.com/models/folder.rb', line 111 def each(&block) contents.each { |x| block.call(x) } end |
#fileno ⇒ Object
115 116 117 |
# File 'lib/files.com/models/folder.rb', line 115 def fileno stats.id end |
#is_locked ⇒ Object
boolean - Is this folder locked and unable to be modified?
267 268 269 |
# File 'lib/files.com/models/folder.rb', line 267 def is_locked @attributes[:is_locked] end |
#is_locked=(value) ⇒ Object
271 272 273 |
# File 'lib/files.com/models/folder.rb', line 271 def is_locked=(value) @attributes[:is_locked] = value end |
#md5 ⇒ Object
string - File MD5 checksum. This is sometimes delayed, so if you get a blank response, wait and try again.
222 223 224 |
# File 'lib/files.com/models/folder.rb', line 222 def md5 @attributes[:md5] end |
#md5=(value) ⇒ Object
226 227 228 |
# File 'lib/files.com/models/folder.rb', line 226 def md5=(value) @attributes[:md5] = value end |
#mime_type ⇒ Object
string - MIME Type. This is determined by the filename extension and is not stored separately internally.
231 232 233 |
# File 'lib/files.com/models/folder.rb', line 231 def mime_type @attributes[:mime_type] end |
#mime_type=(value) ⇒ Object
235 236 237 |
# File 'lib/files.com/models/folder.rb', line 235 def mime_type=(value) @attributes[:mime_type] = value end |
#mkdir_parents ⇒ Object
boolean - Create parent directories if they do not exist?
312 313 314 |
# File 'lib/files.com/models/folder.rb', line 312 def mkdir_parents @attributes[:mkdir_parents] end |
#mkdir_parents=(value) ⇒ Object
316 317 318 |
# File 'lib/files.com/models/folder.rb', line 316 def mkdir_parents=(value) @attributes[:mkdir_parents] = value end |
#mtime ⇒ Object
date-time - File last modified date/time, according to the server. This is the timestamp of the last Files.com operation of the file, regardless of what modified timestamp was sent.
195 196 197 |
# File 'lib/files.com/models/folder.rb', line 195 def mtime @attributes[:mtime] end |
#mtime=(value) ⇒ Object
199 200 201 |
# File 'lib/files.com/models/folder.rb', line 199 def mtime=(value) @attributes[:mtime] = value end |
#path ⇒ Object
string - File/Folder path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
154 155 156 |
# File 'lib/files.com/models/folder.rb', line 154 def path @attributes[:path] end |
#path=(value) ⇒ Object
158 159 160 |
# File 'lib/files.com/models/folder.rb', line 158 def path=(value) @attributes[:path] = value end |
#permissions ⇒ Object
string - A short string representing the current user’s permissions. Can be ‘r`,`w`,`d`, `l` or any combination
249 250 251 |
# File 'lib/files.com/models/folder.rb', line 249 def @attributes[:permissions] end |
#permissions=(value) ⇒ Object
253 254 255 |
# File 'lib/files.com/models/folder.rb', line 253 def (value) @attributes[:permissions] = value end |
#preview ⇒ Object
Preview - File preview
303 304 305 |
# File 'lib/files.com/models/folder.rb', line 303 def preview @attributes[:preview] end |
#preview=(value) ⇒ Object
307 308 309 |
# File 'lib/files.com/models/folder.rb', line 307 def preview=(value) @attributes[:preview] = value end |
#preview_id ⇒ Object
int64 - File preview ID
294 295 296 |
# File 'lib/files.com/models/folder.rb', line 294 def preview_id @attributes[:preview_id] end |
#preview_id=(value) ⇒ Object
298 299 300 |
# File 'lib/files.com/models/folder.rb', line 298 def preview_id=(value) @attributes[:preview_id] = value end |
#priority_color ⇒ Object
string - Bookmark/priority color of file/folder
285 286 287 |
# File 'lib/files.com/models/folder.rb', line 285 def priority_color @attributes[:priority_color] end |
#priority_color=(value) ⇒ Object
289 290 291 |
# File 'lib/files.com/models/folder.rb', line 289 def priority_color=(value) @attributes[:priority_color] = value end |
#provided_mtime ⇒ Object
date-time - File last modified date/time, according to the client who set it. Files.com allows desktop, FTP, SFTP, and WebDAV clients to set modified at times. This allows Desktop<->Cloud syncing to preserve modified at times.
204 205 206 |
# File 'lib/files.com/models/folder.rb', line 204 def provided_mtime @attributes[:provided_mtime] end |
#provided_mtime=(value) ⇒ Object
208 209 210 |
# File 'lib/files.com/models/folder.rb', line 208 def provided_mtime=(value) @attributes[:provided_mtime] = value end |
#read(*_args) ⇒ Object
133 134 135 |
# File 'lib/files.com/models/folder.rb', line 133 def read(*_args) contents[@pos] end |
#region ⇒ Object
string - Region location
240 241 242 |
# File 'lib/files.com/models/folder.rb', line 240 def region @attributes[:region] end |
#region=(value) ⇒ Object
244 245 246 |
# File 'lib/files.com/models/folder.rb', line 244 def region=(value) @attributes[:region] = value end |
#rewind ⇒ Object
137 138 139 |
# File 'lib/files.com/models/folder.rb', line 137 def rewind @pos = 0 end |
#save ⇒ Object
320 321 322 323 |
# File 'lib/files.com/models/folder.rb', line 320 def save new_obj = Folder.create(path, @attributes, @options) @attributes = new_obj.attributes end |
#seek(pos) ⇒ Object
141 142 143 |
# File 'lib/files.com/models/folder.rb', line 141 def seek(pos) @pos = pos end |
#size ⇒ Object
int64 - File/Folder size
181 182 183 |
# File 'lib/files.com/models/folder.rb', line 181 def size @attributes[:size] end |
#size=(value) ⇒ Object
185 186 187 |
# File 'lib/files.com/models/folder.rb', line 185 def size=(value) @attributes[:size] = value end |
#stats ⇒ Object
123 124 125 |
# File 'lib/files.com/models/folder.rb', line 123 def stats @stats ||= File.download(@filename, { action: 'stat' }, @options) end |
#subfolders_locked=(value) ⇒ Object
262 263 264 |
# File 'lib/files.com/models/folder.rb', line 262 def subfolders_locked=(value) @attributes[:subfolders_locked?] = value end |
#subfolders_locked? ⇒ Boolean
boolean - Are subfolders locked and unable to be modified?
258 259 260 |
# File 'lib/files.com/models/folder.rb', line 258 def subfolders_locked? @attributes[:subfolders_locked?] end |
#tell ⇒ Object
145 146 147 |
# File 'lib/files.com/models/folder.rb', line 145 def tell @pos end |
#to_path ⇒ Object
149 150 151 |
# File 'lib/files.com/models/folder.rb', line 149 def to_path path end |
#type ⇒ Object
string - Type: ‘directory` or `file`.
172 173 174 |
# File 'lib/files.com/models/folder.rb', line 172 def type @attributes[:type] end |
#type=(value) ⇒ Object
176 177 178 |
# File 'lib/files.com/models/folder.rb', line 176 def type=(value) @attributes[:type] = value end |