Module: HasCache::Utilities

Included in:
Cache, Cache
Defined in:
lib/has_cache/utilities.rb

Overview

Container for utility methods

Instance Method Summary collapse

Instance Method Details

#extract_result(result) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/has_cache/utilities.rb', line 4

def extract_result(result)
  if result.is_a?(ActiveRecord::Relation)
    if result.respond_to?(:load) &&
       result.method(:load).owner == ActiveRecord::Relation
      result.load
    elsif result.respond_to?(:to_a)
      result.to_a
    end
  end
  result
end

#merged_options(target, local_options) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/has_cache/utilities.rb', line 16

def merged_options(target, local_options)
  if target.is_a?(Class)
    class_options = target.has_cache_options
  else
    class_options = target.class.has_cache_options
  end
  class_options.delete(:key) if target.respond_to?(:has_cache_key)
  class_options.merge(local_options)
end