Class: Familia::String

Inherits:
DataType show all
Defined in:
lib/familia/data_type/types/string.rb

Direct Known Subclasses

Counter

Instance Attribute Summary

Attributes inherited from DataType

#dump_method, #keystring, #load_method, #opts, #parent

Attributes included from Features

#features_enabled

Instance Method Summary collapse

Methods inherited from DataType

#class?, #dbclient, #dbkey, #initialize, #logical_database, #parent?, #parent_class?, #parent_instance?, #uri

Methods included from Features

#feature

Methods included from DataType::ClassMethods

#has_relations?, #inherited, #logical_database, #register, #uri, #valid_keys_only

Methods included from DataType::Serialization

#deserialize_value, #deserialize_values, #deserialize_values_with_nil, #serialize_value

Methods included from DataType::Commands

#current_expiration, #delete!, #echo, #exists?, #expire, #expireat, #move, #persist, #rename, #renamenx, #type

Methods included from Base

add_feature, #generate_id, #update_expiration, #uuid

Constructor Details

This class inherits a constructor from Familia::DataType

Instance Method Details

#append(val) ⇒ Object Also known as: <<



78
79
80
81
82
# File 'lib/familia/data_type/types/string.rb', line 78

def append(val)
  ret = dbclient.append dbkey, val
  update_expiration
  ret
end

#char_countInteger Also known as: size

Returns the number of elements in the list

Returns:

  • (Integer)

    number of elements



9
10
11
# File 'lib/familia/data_type/types/string.rb', line 9

def char_count
  to_s.size
end

#decrementObject Also known as: decr



64
65
66
67
68
# File 'lib/familia/data_type/types/string.rb', line 64

def decrement
  ret = dbclient.decr dbkey
  update_expiration
  ret
end

#decrementby(val) ⇒ Object Also known as: decrby



71
72
73
74
75
# File 'lib/familia/data_type/types/string.rb', line 71

def decrementby(val)
  ret = dbclient.decrby dbkey, val.to_i
  update_expiration
  ret
end

#delObject



111
112
113
114
# File 'lib/familia/data_type/types/string.rb', line 111

def del
  ret = dbclient.del dbkey
  ret.positive?
end

#empty?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/familia/data_type/types/string.rb', line 14

def empty?
  char_count.zero?
end

#getbit(offset) ⇒ Object



85
86
87
# File 'lib/familia/data_type/types/string.rb', line 85

def getbit(offset)
  dbclient.getbit dbkey, offset
end

#getrange(spoint, epoint) ⇒ Object



95
96
97
# File 'lib/familia/data_type/types/string.rb', line 95

def getrange(spoint, epoint)
  dbclient.getrange dbkey, spoint, epoint
end

#getset(val) ⇒ Object



105
106
107
108
109
# File 'lib/familia/data_type/types/string.rb', line 105

def getset(val)
  ret = dbclient.getset dbkey, val
  update_expiration
  ret
end

#incrementObject Also known as: incr



50
51
52
53
54
# File 'lib/familia/data_type/types/string.rb', line 50

def increment
  ret = dbclient.incr(dbkey)
  update_expiration
  ret
end

#incrementby(val) ⇒ Object Also known as: incrby



57
58
59
60
61
# File 'lib/familia/data_type/types/string.rb', line 57

def incrementby(val)
  ret = dbclient.incrby(dbkey, val.to_i)
  update_expiration
  ret
end

#initObject



5
# File 'lib/familia/data_type/types/string.rb', line 5

def init; end

#nil?Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/familia/data_type/types/string.rb', line 116

def nil?
  value.nil?
end

#setbit(offset, val) ⇒ Object



89
90
91
92
93
# File 'lib/familia/data_type/types/string.rb', line 89

def setbit(offset, val)
  ret = dbclient.setbit dbkey, offset, val
  update_expiration
  ret
end

#setnx(val) ⇒ Object



44
45
46
47
48
# File 'lib/familia/data_type/types/string.rb', line 44

def setnx(val)
  ret = dbclient.setnx(dbkey, serialize_value(val))
  update_expiration
  ret
end

#setrange(offset, val) ⇒ Object



99
100
101
102
103
# File 'lib/familia/data_type/types/string.rb', line 99

def setrange(offset, val)
  ret = dbclient.setrange dbkey, offset, val
  update_expiration
  ret
end

#to_iObject



32
33
34
# File 'lib/familia/data_type/types/string.rb', line 32

def to_i
  value&.to_i || 0
end

#to_sObject



26
27
28
29
30
# File 'lib/familia/data_type/types/string.rb', line 26

def to_s
  return super if value.to_s.empty?

  value.to_s
end

#valueObject Also known as: content, get



18
19
20
21
22
# File 'lib/familia/data_type/types/string.rb', line 18

def value
  echo :value, caller(0..0) if Familia.debug
  dbclient.setnx dbkey, @opts[:default] if @opts[:default]
  deserialize_value dbclient.get(dbkey)
end

#value=(val) ⇒ Object Also known as: replace, set



36
37
38
39
40
# File 'lib/familia/data_type/types/string.rb', line 36

def value=(val)
  ret = dbclient.set(dbkey, serialize_value(val))
  update_expiration
  ret
end