Class: Hari::Keys::Key

Inherits:
Object
  • Object
show all
Defined in:
lib/hari/keys/key.rb

Direct Known Subclasses

Hash, List, Set, SortedSet, String

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node = nil, options = {}) ⇒ Key

Returns a new instance of Key.



7
8
9
# File 'lib/hari/keys/key.rb', line 7

def initialize(node = nil, options = {})
  @node, @options = node, options
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/hari/keys/key.rb', line 5

def name
  @name
end

#nodeObject (readonly)

Returns the value of attribute node.



5
6
7
# File 'lib/hari/keys/key.rb', line 5

def node
  @node
end

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/hari/keys/key.rb', line 5

def options
  @options
end

Instance Method Details

#delete!Object



18
19
20
# File 'lib/hari/keys/key.rb', line 18

def delete!
  Hari.redis.del key
end

#desserialize(value) ⇒ Object



56
57
58
59
60
61
62
63
64
65
# File 'lib/hari/keys/key.rb', line 56

def desserialize(value)
  type = options[:type]

  if type.nil? || value.nil?
    value
  else
    value.kind_of?(Enumerable) ? value.map { |v| type.from_json(v) }
                               : type.from_json(value)
  end
end

#exists?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/hari/keys/key.rb', line 22

def exists?
  Hari.redis.exists key
end

#expire(milliseconds) ⇒ Object



26
27
28
# File 'lib/hari/keys/key.rb', line 26

def expire(milliseconds)
  Hari.redis.pexpire key, milliseconds
end

#expire_at(timestamp) ⇒ Object



30
31
32
# File 'lib/hari/keys/key.rb', line 30

def expire_at(timestamp)
  Hari.redis.expireat key, ::Time.parse(timestamp).to_s
end

#keyObject



11
12
13
14
15
16
# File 'lib/hari/keys/key.rb', line 11

def key
  @key ||= begin
    prefix = node ? "#{Hari.node_key(node)}:" : ''
    prefix + name.to_s
  end
end

#persistObject



34
35
36
# File 'lib/hari/keys/key.rb', line 34

def persist
  Hari.redis.persist key
end

#serialize(value) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/hari/keys/key.rb', line 46

def serialize(value)
  type = options[:type]

  if type.nil? || value.nil?
    value
  else
    value.kind_of?(Enumerable) ? value.map(&:to_json) : value.to_json
  end
end

#ttlObject



42
43
44
# File 'lib/hari/keys/key.rb', line 42

def ttl
  Hari.redis.ttl key
end

#typeObject



38
39
40
# File 'lib/hari/keys/key.rb', line 38

def type
  Hari.redis.type key
end