Sha256: 2f1883bdac6624270928a41231a2660c4c0fd58ea56d0d57010d313d27b266e8

Contents?: true

Size: 652 Bytes

Versions: 6

Compression:

Stored size: 652 Bytes

Contents

module RackDAV

  # Quick & Dirty
  class LockableFileResource < FileResource
    @@locks = {}

    def lock(token, timeout, scope = nil, type = nil, owner = nil)
      if scope && type && owner
        # Create lock
        @@locks[token] = {
          :timeout => timeout,
          :scope   => scope,
          :type    => type,
          :owner   => owner
        }
        return true
      else
        # Refresh lock
        lock = @@locks[token]
        return false unless lock
        return [ lock[:timeout], lock[:scope], lock[:type], lock[:owner] ]
      end
    end

    def unlock(token)
      !!@@locks.delete(token)
    end
  end

end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
rack_dav-0.5.2 spec/support/lockable_file_resource.rb
rack_dav-0.5.1 spec/support/lockable_file_resource.rb
rack_dav-0.4.1 spec/support/lockable_file_resource.rb
rack_dav-0.4.0 spec/support/lockable_file_resource.rb
rack_dav-0.3.1 spec/support/lockable_file_resource.rb
rack_dav_sp-0.2.dev spec/support/lockable_file_resource.rb