Class: ActiveRedis::DirtyObjects::Hash

Inherits:
Hash
  • Object
show all
Defined in:
lib/active_redis/dirty_objects/hash.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#originalObject

Returns the value of attribute original.



10
11
12
# File 'lib/active_redis/dirty_objects/hash.rb', line 10

def original
  @original
end

Class Method Details

.[](*args) ⇒ Object



4
5
6
7
8
# File 'lib/active_redis/dirty_objects/hash.rb', line 4

def self.[](*args)
  hash = super
  hash.original = hash.dup
  hash
end

Instance Method Details

#changesObject



16
17
18
# File 'lib/active_redis/dirty_objects/hash.rb', line 16

def changes
  {additions: updated_keys, drops: dropped_keys, hash: self}
end

#clean!Object



24
25
26
# File 'lib/active_redis/dirty_objects/hash.rb', line 24

def clean!
  @original = dup
end

#dirty?Boolean



12
13
14
# File 'lib/active_redis/dirty_objects/hash.rb', line 12

def dirty?
  @original != self
end

#dropped_keysObject



20
21
22
# File 'lib/active_redis/dirty_objects/hash.rb', line 20

def dropped_keys
  @original.keys - self.keys
end

#updated_keysObject



28
29
30
31
32
# File 'lib/active_redis/dirty_objects/hash.rb', line 28

def updated_keys
  self.keys.select do |key|
    @original[key] != self[key]
  end
end