Class: RedisRds::Composite

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/redis_rds/composite.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key) ⇒ Composite

Returns a new instance of Composite.



8
9
10
11
# File 'lib/redis_rds/composite.rb', line 8

def initialize(key)
  @key = key
  @members = {}.with_indifferent_access
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*args) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/redis_rds/composite.rb', line 37

def method_missing(*args)
  result = nil

  key = args.first
  result = @members[key] if key.present?

  return result
end

Instance Attribute Details

#membersObject (readonly)

Returns the value of attribute members.



5
6
7
# File 'lib/redis_rds/composite.rb', line 5

def members
  @members
end

Instance Method Details

#add(key, klass) ⇒ Object



13
14
15
16
# File 'lib/redis_rds/composite.rb', line 13

def add(key, klass)
  object = klass.new(format_member_key(key))
  @members[key] = object
end

#clearObject



30
31
32
33
34
35
# File 'lib/redis_rds/composite.rb', line 30

def clear
  @members.each do |k, _|
    self.delete(k)
  end
  @members.clear
end

#delete(key) ⇒ Object



23
24
25
26
27
28
# File 'lib/redis_rds/composite.rb', line 23

def delete(key)
  if @members.key?(key)
    @members[key].delete
    @members.delete(key)
  end
end