Class: SelectedAlbums

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/subapp_model/selected_albums.rb

Class Method Summary collapse

Class Method Details

.disable_cache(selected_album_cache, id) ⇒ Object



41
42
43
# File 'lib/subapp_model/selected_albums.rb', line 41

def self.disable_cache(selected_album_cache, id)
  selected_album_cache.evict(id)
end

.get(selected_album_cache, id) ⇒ Object



7
8
9
10
11
12
# File 'lib/subapp_model/selected_albums.rb', line 7

def self.get(selected_album_cache, id)
   selected_album = selected_album_cache.get(id)
   selected_album = self.where(id: id).first if selected_album.nil?
   selected_album_cache.put(selected_album) unless selected_album.nil?
   selected_album
end

.mget(selected_album_cache, ids) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/subapp_model/selected_albums.rb', line 14

def self.mget(selected_album_cache, ids)
  selected_albums = selected_album_cache.multi_get(ids)
  fetch_ids_hash= {}
  fetch_ids = []
  selected_albums.each_with_index do |selected_album, i| 
    if selected_album.nil? 
      fetch_ids << ids[i] 
      fetch_ids_hash[ids[i]] = i
    end
  end

  if fetch_ids.length > 0
    selected_albums_not_hit = self.find(fetch_ids)
    cached_selected_albums = []

    selected_albums_not_hit.each_with_index do |selected_album, i|
      if !selected_album.nil?
        selected_albums[fetch_ids_hash[selected_album.id]] = selected_album
        cached_selected_albums << selected_album
      end
    end

    selected_album_cache.multi_put(cached_selected_albums) if cached_selected_albums.length > 0
  end
  selected_albums
end