Module: DataProcessor::Helpers

Included in:
DataProcessor
Defined in:
lib/data_processor/helpers.rb

Instance Method Summary collapse

Instance Method Details

#traverse_path(object, path, use_symbols = false) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/data_processor/helpers.rb', line 4

def traverse_path(object, path, use_symbols=false)
  obj = object
  parent_obj = nil
  path_split = path.split("/")
  counter = 0

  # down the rabbit hole
  path_split.each do |p|
    p = p.to_sym if use_symbols

    if obj && obj[p]
      parent_obj = obj
      obj = obj[p]
      counter = counter + 1
    else
      parent_obj = nil
      obj = nil
    end
  end

  if obj && (counter == path_split.length)
    return obj, parent_obj
  end
end