Module: Familia::Horreum::DatabaseCommands
- Included in:
- Familia::Horreum
- Defined in:
- lib/familia/horreum/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.
-
#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/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/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
144 145 146 |
# File 'lib/familia/horreum/database_commands.rb', line 144 def decr(field) dbclient.hdecr field end |
#decrby(field, decrement) ⇒ Object Also known as: decrementby
139 140 141 |
# File 'lib/familia/horreum/database_commands.rb', line 139 def decrby(field, decrement) dbclient.decrby dbkey(suffix), field, decrement end |
#delete! ⇒ Boolean Also known as: clear
Deletes the entire dbkey
161 162 163 164 165 |
# File 'lib/familia/horreum/database_commands.rb', line 161 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/database_commands.rb', line 39 def exists?(check_size: true) key_exists = self.class.dbclient.exists?(dbkey) 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/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/database_commands.rb', line 48 def field_count dbclient.hlen dbkey end |
#hget(field) ⇒ Object
97 98 99 100 |
# File 'lib/familia/horreum/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/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
115 116 117 118 |
# File 'lib/familia/horreum/database_commands.rb', line 115 def hkeys Familia.trace :HKEYS, dbclient, 'uri', caller(1..1) if Familia.debug? dbclient.hkeys dbkey(suffix) end |
#hmset(hsh = {}) ⇒ Object
109 110 111 112 113 |
# File 'lib/familia/horreum/database_commands.rb', line 109 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/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 |
#hstrlen(field) ⇒ Object Also known as: hstrlength
149 150 151 |
# File 'lib/familia/horreum/database_commands.rb', line 149 def hstrlen(field) dbclient.hstrlen dbkey(suffix), field end |
#hvals ⇒ Object
120 121 122 |
# File 'lib/familia/horreum/database_commands.rb', line 120 def hvals dbclient.hvals dbkey(suffix) end |
#incr(field) ⇒ Object Also known as: increment
124 125 126 |
# File 'lib/familia/horreum/database_commands.rb', line 124 def incr(field) dbclient.hincrby dbkey(suffix), field, 1 end |
#incrby(field, increment) ⇒ Object Also known as: incrementby
129 130 131 |
# File 'lib/familia/horreum/database_commands.rb', line 129 def incrby(field, increment) dbclient.hincrby dbkey(suffix), field, increment end |
#incrbyfloat(field, increment) ⇒ Object Also known as: incrementbyfloat
134 135 136 |
# File 'lib/familia/horreum/database_commands.rb', line 134 def incrbyfloat(field, increment) dbclient.hincrbyfloat dbkey(suffix), field, increment end |
#key?(field) ⇒ Boolean Also known as: has_key?
154 155 156 |
# File 'lib/familia/horreum/database_commands.rb', line 154 def key?(field) dbclient.hexists dbkey(suffix), field end |
#move(logical_database) ⇒ Object
19 20 21 |
# File 'lib/familia/horreum/database_commands.rb', line 19 def move(logical_database) dbclient.move dbkey, logical_database end |