Sha256: 955a7145b22d1645ed399f09e7dc234cb4ba74f57fac7929ee4f457b9094fc69

Contents?: true

Size: 582 Bytes

Versions: 4

Compression:

Stored size: 582 Bytes

Contents

module Blendris

  # RedisInteger is a string-value in Redis wrapped up to make
  # sure that it is used as an integer.

  class RedisInteger < RedisNode

    def self.cast_to_redis(value, options = {})
      raise TypeError.new("#{value.class.name} is not an integer") unless value.kind_of? Fixnum

      value.to_s
    end

    def self.cast_from_redis(value, options = {})
      value.to_i if value
    end

    def increment
      redis.incr key
    ensure
      notify_changed
    end

    def decrement
      redis.decr key
    ensure
      notify_changed
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
blendris-1.2 lib/blendris/integer.rb
blendris-1.1 lib/blendris/integer.rb
blendris-1.0 lib/blendris/integer.rb
blendris-0.6 lib/blendris/integer.rb