Sha256: c067afa3a0d3ef1c94fc4346b80022d80821c66970a91f2bb9cade3e2c47de97

Contents?: true

Size: 752 Bytes

Versions: 3

Compression:

Stored size: 752 Bytes

Contents

class Redis
  #
  # Class representing a simple value.  You can use standard Ruby operations on it.
  #
  class Value
    attr_reader :key, :options, :redis
    def initialize(key, redis=$redis, options={})
      @key = key
      @redis = redis
      @options = options
      @redis.setnx(key, @options[:default]) if @options[:default]
    end

    def value
      @value ||= get
    end

    def value=(val)
      redis.set(key, val)
      @value = val
    end
    
    def get
      @value = redis.get(key)
    end
    
    def delete
      redis.del(key)
      @value = nil
    end
    alias_method :del, :delete

    def to_s;  value.to_s; end
    alias_method :to_str, :to_s

    def ==(x); value == x; end
    def nil?;  value.nil?; end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
redis-objects-0.2.0 lib/redis/value.rb
redis-objects-0.1.2 lib/redis/value.rb
redis-objects-0.1.1 lib/redis/value.rb