Module: Familia::Horreum::DatabaseCommands
- Included in:
- Core
- Defined in:
- lib/familia/horreum/core/database_commands.rb
Overview
Methods that call Database commands (InstanceMethods)
NOTE: There is no hgetall for Horreum. This is because Horreum is a single hash in Database that we aren’t meant to have be working on in memory for more than, making changes -> committing. To emphasize this, instead of “refreshing” the object with hgetall, just load the object again.
Instance Method Summary collapse
-
#current_expiration ⇒ Integer
Retrieves the remaining time to live (TTL) for the object’s dbkey.
-
#data_type ⇒ Object
-
#decr(field) ⇒ Object
(also: #decrement)
-
#decrby(field, decrement) ⇒ Object
(also: #decrementby)
-
#delete! ⇒ Boolean
(also: #clear)
Deletes the entire dbkey.
-
#exists?(check_size: true) ⇒ Boolean
Checks if the calling object’s key exists in Redis.
-
#expire(default_expiration = nil) ⇒ Object
Sets a timeout on key.
-
#field_count ⇒ Integer
(also: #size)
Returns the number of fields in the main object hash.
-
#hget(field) ⇒ Object
-
#hgetall ⇒ Object
(also: #all)
For parity with DataType#hgetall.
-
#hkeys ⇒ Object
-
#hmset(hsh = {}) ⇒ Object
-
#hset(field, value) ⇒ Object
The number of fields that were added to the hash.
-
#hsetnx(field, value) ⇒ Integer
Sets field in the hash stored at key to value, only if field does not yet exist.
-
#hstrlen(field) ⇒ Object
(also: #hstrlength)
-
#hvals ⇒ Object
-
#incr(field) ⇒ Object
(also: #increment)
-
#incrby(field, increment) ⇒ Object
(also: #incrementby)
-
#incrbyfloat(field, increment) ⇒ Object
(also: #incrementbyfloat)
-
#key?(field) ⇒ Boolean
(also: #has_key?)
-
#move(logical_database) ⇒ Object
-
#remove_field(field) ⇒ Integer
(also: #remove)
Removes a field from the hash stored at the dbkey.
Instance Method Details
#current_expiration ⇒ Integer
Retrieves the remaining time to live (TTL) for the object’s dbkey.
This method accesses the ovjects Database client to obtain the TTL of dbkey.
If debugging is enabled, it logs the TTL retrieval operation using Familia.trace.
70 71 72 73 |
# File 'lib/familia/horreum/core/database_commands.rb', line 70 def current_expiration Familia.trace :CURRENT_EXPIRATION, dbclient, uri, caller(1..1) if Familia.debug? dbclient.ttl dbkey end |
#data_type ⇒ Object
85 86 87 88 |
# File 'lib/familia/horreum/core/database_commands.rb', line 85 def data_type Familia.trace :DATATYPE, dbclient, uri, caller(1..1) if Familia.debug? dbclient.type dbkey(suffix) end |
#decr(field) ⇒ Object Also known as: decrement
157 158 159 |
# File 'lib/familia/horreum/core/database_commands.rb', line 157 def decr(field) dbclient.hdecr field end |
#decrby(field, decrement) ⇒ Object Also known as: decrementby
152 153 154 |
# File 'lib/familia/horreum/core/database_commands.rb', line 152 def decrby(field, decrement) dbclient.decrby dbkey(suffix), field, decrement end |
#delete! ⇒ Boolean Also known as: clear
Deletes the entire dbkey
174 175 176 177 178 |
# File 'lib/familia/horreum/core/database_commands.rb', line 174 def delete! Familia.trace :DELETE!, dbclient, uri, caller(1..1) if Familia.debug? ret = dbclient.del dbkey ret.positive? end |
#exists?(check_size: true) ⇒ Boolean
The default behavior maintains backward compatibility by treating empty hashes
as non-existent. Use check_size: false for pure key existence checking.
Checks if the calling object’s key exists in Redis.
39 40 41 42 43 44 |
# File 'lib/familia/horreum/core/database_commands.rb', line 39 def exists?(check_size: true) key_exists = self.class.exists?(identifier) return key_exists unless check_size key_exists && !size.zero? end |
#expire(default_expiration = nil) ⇒ Object
Sets a timeout on key. After the timeout has expired, the key will automatically be deleted. Returns 1 if the timeout was set, 0 if key does not exist or the timeout could not be set.
57 58 59 60 61 |
# File 'lib/familia/horreum/core/database_commands.rb', line 57 def expire(default_expiration = nil) default_expiration ||= self.class.default_expiration Familia.trace :EXPIRE, dbclient, default_expiration, caller(1..1) if Familia.debug? dbclient.expire dbkey, default_expiration.to_i end |
#field_count ⇒ Integer Also known as: size
Returns the number of fields in the main object hash
48 49 50 |
# File 'lib/familia/horreum/core/database_commands.rb', line 48 def field_count dbclient.hlen dbkey end |
#hget(field) ⇒ Object
97 98 99 100 |
# File 'lib/familia/horreum/core/database_commands.rb', line 97 def hget(field) Familia.trace :HGET, dbclient, field, caller(1..1) if Familia.debug? dbclient.hget dbkey(suffix), field end |
#hgetall ⇒ Object Also known as: all
For parity with DataType#hgetall
91 92 93 94 |
# File 'lib/familia/horreum/core/database_commands.rb', line 91 def hgetall Familia.trace :HGETALL, dbclient, uri, caller(1..1) if Familia.debug? dbclient.hgetall dbkey(suffix) end |
#hkeys ⇒ Object
128 129 130 131 |
# File 'lib/familia/horreum/core/database_commands.rb', line 128 def hkeys Familia.trace :HKEYS, dbclient, 'uri', caller(1..1) if Familia.debug? dbclient.hkeys dbkey(suffix) end |
#hmset(hsh = {}) ⇒ Object
122 123 124 125 126 |
# File 'lib/familia/horreum/core/database_commands.rb', line 122 def hmset(hsh = {}) hsh ||= to_h Familia.trace :HMSET, dbclient, hsh, caller(1..1) if Familia.debug? dbclient.hmset dbkey(suffix), hsh end |
#hset(field, value) ⇒ Object
Returns The number of fields that were added to the hash. If the field already exists, this will return 0.
104 105 106 107 |
# File 'lib/familia/horreum/core/database_commands.rb', line 104 def hset(field, value) Familia.trace :HSET, dbclient, field, caller(1..1) if Familia.debug? dbclient.hset dbkey, field, value end |
#hsetnx(field, value) ⇒ Integer
Sets field in the hash stored at key to value, only if field does not yet exist. If key does not exist, a new key holding a hash is created. If field already exists, this operation has no effect.
117 118 119 120 |
# File 'lib/familia/horreum/core/database_commands.rb', line 117 def hsetnx(field, value) Familia.trace :HSETNX, dbclient, field, caller(1..1) if Familia.debug? dbclient.hsetnx dbkey, field, value end |
#hstrlen(field) ⇒ Object Also known as: hstrlength
162 163 164 |
# File 'lib/familia/horreum/core/database_commands.rb', line 162 def hstrlen(field) dbclient.hstrlen dbkey(suffix), field end |
#hvals ⇒ Object
133 134 135 |
# File 'lib/familia/horreum/core/database_commands.rb', line 133 def hvals dbclient.hvals dbkey(suffix) end |
#incr(field) ⇒ Object Also known as: increment
137 138 139 |
# File 'lib/familia/horreum/core/database_commands.rb', line 137 def incr(field) dbclient.hincrby dbkey(suffix), field, 1 end |
#incrby(field, increment) ⇒ Object Also known as: incrementby
142 143 144 |
# File 'lib/familia/horreum/core/database_commands.rb', line 142 def incrby(field, increment) dbclient.hincrby dbkey(suffix), field, increment end |
#incrbyfloat(field, increment) ⇒ Object Also known as: incrementbyfloat
147 148 149 |
# File 'lib/familia/horreum/core/database_commands.rb', line 147 def incrbyfloat(field, increment) dbclient.hincrbyfloat dbkey(suffix), field, increment end |
#key?(field) ⇒ Boolean Also known as: has_key?
167 168 169 |
# File 'lib/familia/horreum/core/database_commands.rb', line 167 def key?(field) dbclient.hexists dbkey(suffix), field end |
#move(logical_database) ⇒ Object
19 20 21 |
# File 'lib/familia/horreum/core/database_commands.rb', line 19 def move(logical_database) dbclient.move dbkey, logical_database end |
#remove_field(field) ⇒ Integer Also known as: remove
Removes a field from the hash stored at the dbkey.
79 80 81 82 |
# File 'lib/familia/horreum/core/database_commands.rb', line 79 def remove_field(field) Familia.trace :HDEL, dbclient, field, caller(1..1) if Familia.debug? dbclient.hdel dbkey, field end |