Module: Readthis::Expanders

Defined in:
lib/readthis/expanders.rb

Class Method Summary collapse

Class Method Details

.expand_key(key) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/readthis/expanders.rb', line 3

def self.expand_key(key)
  case
  when key.respond_to?(:cache_key)
    key.cache_key
  when key.is_a?(Array)
    key.flat_map { |elem| expand_key(elem) }.join('/')
  when key.is_a?(Hash)
    key
      .sort_by { |hkey, _| hkey.to_s }
      .map { |hkey, val| "#{hkey}=#{val}" }
      .join('/')
  when key.respond_to?(:to_param)
    key.to_param
  else
    key.to_s
  end
end

.namespace_key(key, namespace) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/readthis/expanders.rb', line 21

def self.namespace_key(key, namespace)
  expanded = expand_key(key)

  if namespace
    "#{namespace}:#{expanded}"
  else
    expanded
  end
end