Sha256: 153ac2b46cb0e66d20f015a455287b92603ddae80d202c5824791dbf79892b2d

Contents?: true

Size: 887 Bytes

Versions: 22

Compression:

Stored size: 887 Bytes

Contents

module DAV4Rack
  class Lock
    
    def initialize(args={})
      @args = args
      @store = nil
      @args[:created_at] = Time.now
      @args[:updated_at] = Time.now
    end
    
    def store
      @store
    end
    
    def store=(s)
      raise TypeError.new 'Expecting LockStore' unless s.respond_to? :remove
      @store = s
    end
    
    def destroy
      if(@store)
        @store.remove(self)
      end
    end
    
    def remaining_timeout
      @args[:timeout].to_i - (Time.now.to_i - @args[:created_at].to_i)
    end
    
    def method_missing(*args)
      if(@args.has_key?(args.first.to_sym))
        @args[args.first.to_sym]
      elsif(args.first.to_s[-1,1] == '=')
        @args[args.first.to_s[0, args.first.to_s.length - 1].to_sym] = args[1]
      else
        raise NoMethodError.new "Undefined method #{args.first} for #{self}"
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
dav4rack-0.3.0 lib/dav4rack/lock.rb
dav4rack-0.2.11 lib/dav4rack/lock.rb
dav4rack-0.2.10 lib/dav4rack/lock.rb
dav4rack-0.2.9 lib/dav4rack/lock.rb
dav4rack-0.2.8 lib/dav4rack/lock.rb
dav4rack-0.2.7 lib/dav4rack/lock.rb
dav4rack-0.2.6 lib/dav4rack/lock.rb
dav4rack-0.2.5 lib/dav4rack/lock.rb
dav4rack-0.2.4 lib/dav4rack/lock.rb
dav4rack-0.2.3 lib/dav4rack/lock.rb
dav4rack-0.2.2 lib/dav4rack/lock.rb
dav4rack-0.2.1 lib/dav4rack/lock.rb
dav4rack-0.2.0 lib/dav4rack/lock.rb
dav4rack-0.1.8 lib/dav4rack/lock.rb
dav4rack-0.1.7 lib/dav4rack/lock.rb
dav4rack-0.1.6 lib/dav4rack/lock.rb
dav4rack-0.1.5 lib/dav4rack/lock.rb
dav4rack-0.1.4 lib/dav4rack/lock.rb
dav4rack-0.1.3 lib/dav4rack/lock.rb
dav4rack-0.1.2 lib/dav4rack/lock.rb