Module: Circuitdata::Bury

Defined in:
lib/circuitdata/bury/bury.rb

Defined Under Namespace

Classes: InvalidDataError

Class Method Summary collapse

Class Method Details

.bury(data, *path, value) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/circuitdata/bury/bury.rb', line 6

def bury(data, *path, value)
  current_data = data
  path[0..-2].each_with_index do |part, i|
    current_data = next_level(part, path[i + 1], current_data)
  end
  if !value.nil?
    current_data[path.last] = value
  else
    current_data.delete(path.last)
  end
  data
end

.dig(data, *path) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/circuitdata/bury/bury.rb', line 19

def dig(data, *path)
  current_data = data
  path.each do |part|
    current_data = next_level(part, nil, current_data, initialize_missing: false)
    return nil if current_data.nil?
  end
  current_data
end