forked from jagthedrummer/railsdav
-
Notifications
You must be signed in to change notification settings - Fork 1
The WebDAV Ruby On Rails Plugin
License
ktopping/railsdav
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Railsdav (WebDAV for Ruby On Rails)
===================================
Important note: This interim commit is in no way release-quality. It mainly exists in order for me to test that I have git installed correctly! Kieran
Railsdav is a plugin which allows for custom WebDAV controllers to be added to a Ruby On Rails application to expose functionality as filesystems to WebDAV clients such as Mac OS X Finder, Windows Network Places, Dreamweaver etc.
ktopping's enhancements include:
* Locking - there is a partially complete framework for acquiring/releasing locks, allowing applications to specify their own "Lock Factory" for creating, checking & releasing locks. Two example implementations exist:
* ActiveRecordLockFactory: Implements locks via an ActiveRecord class. See example class below, "WebdavLock".
* FileSystemLockFactory: Implements locks via native filesystem locks.
The locking implementation allows a wider number of clients to connect to the webdav server, and it allows them to perform a greater set of functionality.
* ActiveRecord webdav implementation. Addition of an "acts_as_active_record_webdav" method which stores resources in a database table of your choice, via an ActiveRecord class of your choice.
Storing resources via ActiveRecord, and implementing locks via ActiveRecord means that this plugin can run on platforms without a writable filesystem. One obvious example being Heroku.
Railsdav requires the following gems in addition to rails
* unicode (gem install unicode)
* shared-mime-info (gem install unicode)
# mimetypes (gem install mime-types)
Railsdav was created by Stuart Eccles (http://www.liverail.net/). I'd like to thank the following people for assisting with Railsdav
* Albert Ramstedt who contributed bug fixes for a variety of code issues and helped with re-structuring the plugin
* Alex MacCaw
* Fabien Franzen
TODO: Document this!
Resource storage model:
create_table :webdavs do |t|
t.string :path
t.binary :data
t.integer :size, :null => false
t.boolean :is_directory, :null => false
t.timestamps
end
add_index :webdavs, [:path], :unique => true
Lock model
create_table :webdav_locks do |t|
t.string :path
t.string :token
t.timestamps
end
add_index :webdav_locks, [:path], :unique => true
About
The WebDAV Ruby On Rails Plugin
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Ruby 100.0%