Method: Nx#set

Defined in:
lib/nx.rb

#set(path, value) ⇒ Object



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

def set(path, value)
  me = self || {}
  keys = []
  path.split(".").each do |dot_part|
    dot_part.split("[").each do |part|
      keys << (part.include?("]") ? part.to_i : part)
    end
  end

  # set by path:
  keys[0..-2].each_with_index do |key, index|
    me = me[key] = me[key] || (keys[index + 1].class == String ? {} : [])
  end

  me[keys[-1].to_sym] = value
end