Method: Config#set

Defined in:
lib/commands/config.rb

#set(key, value, global = false) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/commands/config.rb', line 34

def set(key, value, global=false)
  filename = global ? GLOBAL_FILENAME : PROJECT_FILENAME
  settings = YAML.load_file(filename) || {}

  # FIXME: This could be simplified... heaps.
  newSettings = {}
  n = newSettings
  keys = key.to_s.split(".")
  keys.each do |k|
    k = k.to_i if k == k.to_i.to_s
    n[k] = (k == keys.last) ? value : {}
    n = n[k]
  end

  settings = settings.deep_merge(newSettings)

  File.open(filename, "w") { |f| f.write(settings.to_yaml) }
end