module CachedCalls
Public Class Methods
included(base)
click to toggle source
class methods
# File lib/Salesforce/rest/asf_rest_cached_calls.rb, line 22 def self.included(base) class << base # xfind is the cached version of the ActiveReources Find method. You will # see the speed improvement with memcache turned on. def xfind(*arguments) if Rails.cache.exist? arguments binobj = Rails.cache.read(arguments) # deserialize from Json obj = self.name.constantize.new.from_json(binobj) return obj else obj = self.find(arguments) # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(arguments, obj.to_json()) return obj end end # Memcached version of the describe_global() method def xdescribe_global() @@memcache_id = self.name + "/describe_global" if Rails.cache.exist? @@memcache_id binobj = Rails.cache.read(@@memcache_id) # deserialize from Json obj = HTTParty::Parser.call(binobj, :json) return obj else obj = self.describe_global() # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(@@memcache_id, obj.body) return obj end end # Memcached version of the get_detail_info() method def xget_detail_info() @@memcache_id = self.name + "/describe" if Rails.cache.exist? @@memcache_id binobj = Rails.cache.read(@@memcache_id) # deserialize from Json obj = HTTParty::Parser.call(binobj, :json) return obj else obj = self.get_detail_info() # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(@@memcache_id, obj.body) return obj end end # Memcached version of the get_meta_data() method def xget_meta_data() @@memcache_id = self.name + "/meta_data" if Rails.cache.exist? @@memcache_id binobj = Rails.cache.read(@@memcache_id) # deserialize from Json obj = HTTParty::Parser.call(binobj, :json) return obj else obj = self.get_meta_data() # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(@@memcache_id, obj.body) return obj end end # Memcached version of the list_available_resources() method def xlist_available_resources() @@memcache_id = self.name + "/list_resources" if Rails.cache.exist? @@memcache_id binobj = Rails.cache.read(@@memcache_id) # deserialize from Json obj = HTTParty::Parser.call(binobj, :json) return obj else obj = self.list_available_resources() # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(@@memcache_id, obj.body) return obj end end # Memcached version of the get_version() method def xget_version() @@memcache_id = self.name + "/get_version" if Rails.cache.exist? @@memcache_id binobj = Rails.cache.read(@@memcache_id) # deserialize from Json obj = HTTParty::Parser.call(binobj, :json) return obj else obj = self.get_version() # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(@@memcache_id, obj.body) return obj end end # Memcached version of the run_soql() method def xrun_soql(query) @@memcache_id = self.name + "/run_soql" if Rails.cache.exist? @@memcache_id binobj = Rails.cache.read(@@memcache_id) # deserialize from Json obj = HTTParty::Parser.call(binobj, :json) return obj else obj = self.run_soql(query) # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(@@memcache_id, obj.body) return obj end end # Memcached version of the run_sosl() method def xrun_sosl(search) @@memcache_id = self.name + "/run_sosl" if Rails.cache.exist? @@memcache_id binobj = Rails.cache.read(@@memcache_id) # deserialize from Json obj = HTTParty::Parser.call(binobj, :json) return obj else obj = self.run_sosl(search) # Save a Json, Marshal.dump or :raw does not work Rails.cache.write(@@memcache_id, obj.body) return obj end end end end