Sha256: 1cd1b214fad6a6fcde0a0b78d8f45e9402528a94cc6e8232c028735b3335a5ea
Contents?: true
Size: 966 Bytes
Versions: 2
Compression:
Stored size: 966 Bytes
Contents
module Blendris # RedisNode is used to compose all Redis value wrapper classes. module RedisNode include RedisAccessor attr_reader :key def initialize(key, options = {}) @key = sanitize_key(key) @default = options[:default] @options = options @on_change = options[:on_change] if @default && !redis.exists(self.key) redis.set key, self.class.cast_to_redis(@default, @options) end end def set(value) if value redis.set key, self.class.cast_to_redis(value, @options) else redis.del key end ensure notify_changed end def get self.class.cast_from_redis redis.get(self.key), @options end def clear redis.del key ensure notify_changed end def type redis.type key end def exists? redis.exists key end def notify_changed @on_change.call if @on_change end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
blendris-0.0.4 | lib/blendris/node.rb |
blendris-0.0.3 | lib/blendris/node.rb |