Class: Domotics::Core::DataRedisOperator

Inherits:
BasicObject
Defined in:
lib/domotics/core/data/data_redis.rb

Instance Method Summary collapse

Constructor Details

#initialize(redis, key) ⇒ DataRedisOperator

Returns a new instance of DataRedisOperator.



34
35
36
37
# File 'lib/domotics/core/data/data_redis.rb', line 34

def initialize(redis, key)
  @redis = redis
  @key = key
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(symbol, *args) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/domotics/core/data/data_redis.rb', line 39

def method_missing(symbol, *args)
  # Setter method [*=(value)]
  if symbol.to_s =~ /.*=\Z/ and args.size == 1
    @redis.set "#{@key}:#{symbol.to_s[0..-2]}", args[0].to_s
  # Getter method (no arguments allowed)
  elsif args.size == 0
    result = @redis.get "#{@key}:#{symbol}"
    while result =~ /\AOK\Z/
      @redis.connect broken: true
      result = @redis.get "#{@key}:#{symbol}"
    end
    result && result.to_isym
  else
    nil
  end
end