module MSS::Core::IniParser

@api private

Public Class Methods

parse(ini) click to toggle source
# File lib/mss/core/ini_parser.rb, line 19
def self.parse(ini)
  current_section = {}
  map = {}
  ini.split(/\r?\n/).each do |line|
    line = line.split(/^|\s;/).first # remove comments
    section = line.match(/^\s*\[([^\[\]]+)\]\s*$/) unless line.nil?
    if section
      current_section = section[1]
    elsif current_section
      item = line.match(/^\s*(.+?)\s*=\s*(.+)\s*$/) unless line.nil?
      if item
        map[current_section] = map[current_section] || {}
        map[current_section][item[1]] = item[2]
      end
    end  
  end
  map
end