Ruby on Rails
WebDAV

WebDAV stands for “Web-based Distributed Authoring and Versioning”. It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers.

WebDAV Ruby On Rails Plugin

The plugin contains a base WebDAV controller and 2 specific implementations. A file-system exposer and an ActiveRecord exposer.

SVN: http://svn.liverail.net/svn/plugins/railsdav
More Info: http://www.liverail.net/articles/2006/06/25/webdav-ruby-on-rails-plugin

Running a WebDAV server using WEBrick

A WebDAV server plugin for WEBrick is available here:
http://redhanded.hobix.com/inspect/webrickWebdavHandlerSafelyExtractedFromTheWild.html


#!/usr/bin/env ruby
require 'rubygems'
require 'webrick'
require 'webrick/httpservlet/webdavhandler'

PORT = 3232
IP = IPSocket::getaddress(host)
require File.dirname(__FILE__)  + '/server/config/environment.rb'

# change the current directory
Dir.chdir File.dirname(__FILE__)

# Setup webrick 
puts "=> Vision starting at http://#{IP}:#{PORT}/" 
puts "=> WebDAV is available at http://#{IP}:#{PORT}/webdav" 

webrick = mount(WEBrick::HTTPServer.new(:Port => PORT ))
webrick.mount("/webdav", WEBrick::HTTPServlet::WebDAVHandler, Dir::pwd + "/themes")
trap("INT"){ $webrick.shutdown }

webrick.start

As extracted from:
http://sg.validcode.at/articles/2006/02/25/vision-everywhere

Running a WebDAV server using Mongrel

As of release 0.3.12.4 Mongrel has support for WebDAV should a ruby handler be written to support it.

http://mongrel.rubyforge.org/news.html

Find out more about WebDAV at:

http://www.webdav.org/
http://www.ietf.org/rfc/rfc2518.txt