Module: Nx

Included in:
Hash
Defined in:
lib/nx.rb,
lib/templates/version.rb

Constant Summary collapse

VERSION =
"0.1.2"

Instance Method Summary collapse

Instance Method Details

#get(path) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/nx.rb', line 21

def get(path)
  result = self
  path.split(".").each do |dot_part|
    dot_part.split("[").each do |part|
      if part.include?("]")
        index = part.to_i
        result = result[index] rescue nil
      else
        result = result[part] rescue nil
      end
    end
  end
  result
end

#mix(*args) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/nx.rb', line 36

def mix(*args)
  result = {}
  args.each do |arg|
    result.merge! arg
  end
  result
end

#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