module Sinatra::WebDAV::Request

def self.included(base)

def self.included(base)
  base.class_eval do
    alias_method :_safe?, :safe?
    alias_method :_idempotent?, :idempotent?
    def safe?
      _safe? or propfind?
    end
    def idempotent?
      _idempotent? or propfind? or move? or unlock? # or lock?
    end
  end
end

def copy?

def copy?
  request_method == 'COPY'
end

def idempotent?

def idempotent?
  _idempotent? or propfind? or move? or unlock? # or lock?
end

def mkcol?

def mkcol?
  request_method == 'MKCOL'
end

def move?

def move?
  request_method == 'MOVE'
end

def propfind?

def propfind?
  request_method == 'PROPFIND'
end

def proppatch?

def proppatch?
  request_method == 'PROPPATCH'
end

def safe?

def safe?
  _safe? or propfind?
end

def unlock?

def unlock?
  request_method == 'UNLOCK'
end