module Sequel::Plugins::Cacheable::DatasetMethods

Public Instance Methods

all(*args, &block) click to toggle source
Calls superclass method
# File lib/sequel-cacheable/dataset_methods.rb, line 6
def all(*args, &block)
  if(
    model &&
    model.respond_to?(:cache_fetch) &&
    model.cache_options[:query_cache] &&
    @row_proc.kind_of?(Class) &&
    @row_proc.included_modules.include?(Sequel::Model::InstanceMethods)
  )
    @row_proc.cache_fetch(cache_key) do
      super(*args, &block)
    end
  else
    super(*args, &block)
  end
end
cache_key() click to toggle source
# File lib/sequel-cacheable/dataset_methods.rb, line 48
def cache_key
  "Query:#{select_sql.gsub(/ +/, '_')}"
end
first(*args) click to toggle source
Calls superclass method
# File lib/sequel-cacheable/dataset_methods.rb, line 22
def first(*args)
  if(
    model &&
    model.respond_to?(:cache_fetch) &&
    model.cache_options[:query_cache] &&
    @row_proc.kind_of?(Class) &&
    @row_proc.included_modules.include?(Sequel::Model::InstanceMethods)
  )
    @row_proc.cache_fetch("#{cache_key}:first") do
      super(*args)
    end
  else
    super(*args)
  end
end
with_pk(pk) click to toggle source
Calls superclass method
# File lib/sequel-cacheable/dataset_methods.rb, line 38
def with_pk(pk)
  if pk.is_a(Integer)
    model.cache_fetch(pk.to_s) do
      super(pk)
    end
  else
    super(pk)
  end
end