Module: Rackr::Utils

Included in:
Rackr, Action::Callbacks, Router
Defined in:
lib/rackr/utils.rb

Overview

Utils methods for Rackr

Instance Method Summary collapse

Instance Method Details

#deep_hash_push(hash, first_key, *rest_keys, val) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/rackr/utils.rb', line 6

def deep_hash_push(hash, first_key, *rest_keys, val)
  if rest_keys.empty?
    (hash[first_key] ||= []) << val
  else
    hash[first_key] = deep_hash_push(hash[first_key] ||= {}, *rest_keys, val)
  end
  hash
end

#deep_hash_set(hash, keys, value) ⇒ Object



22
23
24
25
26
# File 'lib/rackr/utils.rb', line 22

def deep_hash_set(hash, keys, value)
  *path, last = keys
  node = path.inject(hash) { |h, k| h[k] ||= {} }
  node[last] = value
end

#ensure_array(list) ⇒ Object



15
16
17
18
19
20
# File 'lib/rackr/utils.rb', line 15

def ensure_array(list)
  return [] if list.nil?
  return list if list.is_a?(Array)

  [list]
end