module Tilia::Dav::IFile

This interface represents a file in the directory tree

A file is a bit of a broad definition. In general it implies that on this specific node a PUT or GET method may be performed, to either update, or retrieve the contents of the file.

Public Instance Methods

content_type() click to toggle source

Returns the mime-type for a file

If null is returned, we'll assume application/octet-stream

@return string|null

# File lib/tilia/dav/i_file.rb, line 45
def content_type
end
etag() click to toggle source

Returns the ETag for a file

An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change.

Return null if the ETag can not effectively be determined.

The ETag must be surrounded by double-quotes, so something like this would make a valid ETag:

return '"someetag"';

@return string|null

# File lib/tilia/dav/i_file.rb, line 60
def etag
end
get() click to toggle source

Returns the data

This method may either return a string or a readable stream resource

@return mixed

# File lib/tilia/dav/i_file.rb, line 37
def get
end
put(data) click to toggle source

Replaces the contents of the file.

The data argument is a readable stream resource.

After a succesful put operation, you may choose to return an ETag. The etag must always be surrounded by double-quotes. These quotes must appear in the actual string you're returning.

Clients may use the ETag from a PUT request to later on make sure that when they update the file, the contents haven't changed in the mean time.

If you don't plan to store the file byte-by-byte, and you return a different object on a subsequent GET you are strongly recommended to not return an ETag, and just return null.

@param resource data @return string|null

# File lib/tilia/dav/i_file.rb, line 29
def put(data)
end
size() click to toggle source

Returns the size of the node, in bytes

@return int

# File lib/tilia/dav/i_file.rb, line 66
def size
end