module Mredis::Mget

Public Class Methods

generate_key_for_mget(objects ,str) click to toggle source
# File lib/mredis/mget.rb, line 20
def self.generate_key_for_mget(objects ,str)
  keys = Array.new
  objects.each do |ob|
    keys << "#{ob.class.base_class.name.downcase}:#{ob.id}:#{str}"
  end 
  keys
end
mget(objects, str) click to toggle source
# File lib/mredis/mget.rb, line 3
def self.mget(objects, str) 
  hash = Hash.new
  return hash if objects.blank?
  result =  begin
              $redis.mget(generate_key_for_mget(objects, str))
            rescue => e
              Rails.logger.error "Redis server error: #{e.message}"
              objs = objects.first.class == Spot ? objects.first.class.where(id: objects.map(&:id)).includes(:city=>[:country,:state]) : objects
              objs.map{|x| x.try(str) }
            end
  list_ids = objects.map(&:id)
  list_ids.each_index do |index|
    hash[list_ids[index].to_s] = result[index].presence || (objects[index].try(str) rescue nil)
  end
  hash
end