module Kasket
Constants
- CONFIGURATION
- VERSION
Public Class Methods
add_pending_record(record, destroyed = false)
click to toggle source
# File lib/kasket.rb, line 71 def self.add_pending_record(record, destroyed = false) Thread.current[:kasket_pending_records] ||= {} Thread.current[:kasket_pending_records][record] = destroyed ? nil : record end
cache_store()
click to toggle source
# File lib/kasket.rb, line 56 def self.cache_store @cache_store ||= Rails.cache end
Also aliased as: cache
cache_store=(options)
click to toggle source
# File lib/kasket.rb, line 52 def self.cache_store=(options) @cache_store = ActiveSupport::Cache.lookup_store(options) end
clear_pending_records()
click to toggle source
# File lib/kasket.rb, line 76 def self.clear_pending_records Thread.current[:kasket_pending_records] = nil end
pending_records()
click to toggle source
Keys are the records being saved. Values are either the saved record, or nil if the record has been destroyed.
# File lib/kasket.rb, line 67 def self.pending_records Thread.current[:kasket_pending_records] end
Public Instance Methods
setup(options = {})
click to toggle source
Configure Kasket
.
@param [Hash] options the configuration options for Kasket
. @option options [Integer] :max_collection_size max size limit for a cacheable
collection of records.
@option options [Boolean] :write_through @option options [Integer, nil] :default_expires_in the cache TTL. @option options [#call] :events_callback a callable object used to instrument
Kasket operations. It is invoked with two arguments: the name of the event, as a String, and the Klass of the ActiveRecord model the event is about.
# File lib/kasket.rb, line 39 def setup(options = {}) return if ActiveRecord::Base.respond_to?(:has_kasket) CONFIGURATION[:max_collection_size] = options[:max_collection_size] if options[:max_collection_size] CONFIGURATION[:write_through] = options[:write_through] if options[:write_through] CONFIGURATION[:default_expires_in] = options[:default_expires_in] if options[:default_expires_in] CONFIGURATION[:events_callback] = options[:events_callback] if options[:events_callback] ActiveRecord::Base.extend(Kasket::ConfigurationMixin) ActiveRecord::Relation.include(Kasket::RelationMixin) Arel::SelectManager.include(Kasket::SelectManagerMixin) end