Module: ValkeyObjects::ClassMethods

Defined in:
lib/valkey/objects.rb

Instance Method Summary collapse

Instance Method Details

#counter(name, options = {}) ⇒ Object

Define a counter attribute



31
32
33
34
35
36
37
# File 'lib/valkey/objects.rb', line 31

def counter(name, options = {})
  key_name = options[:key] || name.to_s

  define_method(name) do
    ValkeyObjects::Counter.new("#{self.class.name.downcase}:#{@id}:counter:#{key_name}", self.class.valkey)
  end
end

#hash_key(name, options = {}) ⇒ Object

Define a hash attribute



58
59
60
61
62
63
64
# File 'lib/valkey/objects.rb', line 58

def hash_key(name, options = {})
  key_name = options[:key] || name.to_s
  
  define_method(name) do
    ValkeyObjects::HashKey.new("#{self.class.name.downcase}:#{@id}:hash:#{key_name}", self.class.valkey)
  end
end

#knn(*a) ⇒ Object



17
18
19
# File 'lib/valkey/objects.rb', line 17

def knn *a
  KNN.new([a].flatten.compact)
end

#list(name, options = {}) ⇒ Object

Define a list attribute



40
41
42
43
44
45
46
# File 'lib/valkey/objects.rb', line 40

def list(name, options = {})
  key_name = options[:key] || name.to_s
  
  define_method(name) do
    ValkeyObjects::List.new("#{self.class.name.downcase}:#{@id}:list:#{key_name}", self.class.valkey)
  end
end

#set(name, options = {}) ⇒ Object

Define a set attribute



49
50
51
52
53
54
55
# File 'lib/valkey/objects.rb', line 49

def set(name, options = {})
  key_name = options[:key] || name.to_s
  
  define_method(name) do
    ValkeyObjects::Set.new("#{self.class.name.downcase}:#{@id}:set:#{key_name}", self.class.valkey)
  end
end

#sorted_set(name, options = {}) ⇒ Object

Define a sorted set attribute



67
68
69
70
71
72
73
# File 'lib/valkey/objects.rb', line 67

def sorted_set(name, options = {})
  key_name = options[:key] || name.to_s
  
  define_method(name) do
    ValkeyObjects::SortedSet.new("#{self.class.name.downcase}:#{@id}:sorted_set:#{key_name}", self.class.valkey)
  end
end

#valkeyObject



9
10
11
# File 'lib/valkey/objects.rb', line 9

def valkey
  @valkey ||= Redis.new
end

#valkey=(client) ⇒ Object



13
14
15
# File 'lib/valkey/objects.rb', line 13

def valkey=(client)
  @valkey = client
end

#value(name, options = {}) ⇒ Object

Define a value (string) attribute



22
23
24
25
26
27
28
# File 'lib/valkey/objects.rb', line 22

def value(name, options = {})
  key_name = options[:key] || name.to_s

  define_method(name) do
    ValkeyObjects::Value.new("#{self.class.name.downcase}:#{@id}:value:#{key_name}", self.class.valkey)
  end
end