Sha256: 7191d37d65ddb30a252c3db3e0238d4e0d718a21f5f7819acbc08735de297701

Contents?: true

Size: 626 Bytes

Versions: 10

Compression:

Stored size: 626 Bytes

Contents

class Kredis::Types::Scalar < Kredis::Types::Proxying
  proxying :set, :get, :exists?, :del, :expire, :expireat

  attr_accessor :typed, :default, :expires_in

  def value=(value)
    set type_to_string(value, typed), ex: expires_in
  end

  def value
    value_after_casting = string_to_type(get, typed)

    if value_after_casting.nil?
      default
    else
      value_after_casting
    end
  end

  def to_s
    get || default&.to_s
  end

  def assigned?
    exists?
  end

  def clear
    del
  end

  def expire_in(seconds)
    expire seconds.to_i
  end

  def expire_at(datetime)
    expireat datetime.to_i
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
kredis-1.5.0 lib/kredis/types/scalar.rb
kredis-1.4.0 lib/kredis/types/scalar.rb
kredis-1.3.0.1 lib/kredis/types/scalar.rb
kredis-1.3.0 lib/kredis/types/scalar.rb
kredis-1.2.0 lib/kredis/types/scalar.rb
kredis-1.1.0 lib/kredis/types/scalar.rb
kredis-1.0.1 lib/kredis/types/scalar.rb
kredis-1.0.0 lib/kredis/types/scalar.rb
kredis-0.4.0 lib/kredis/types/scalar.rb
kredis-0.3.1 lib/kredis/types/scalar.rb