Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/admiral-tools-figma/helper/figma/helpers/hash_access.rb

Instance Method Summary collapse

Instance Method Details

#dig_set(keys, value, force = false, delete_if_nil = true) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/admiral-tools-figma/helper/figma/helpers/hash_access.rb', line 4

def dig_set(keys, value, force = false, delete_if_nil = true)
  final_key = keys.pop
  position = self
  keys.each do |key|
    position[key] = {} if !position[key].is_a?(Hash) && force
    position = position[key]
    break if position.nil?
  end
  if delete_if_nil && value.nil?
    position&.delete(final_key)
  else
    position[final_key] = value
  end
end