Sha256: 6110e371bc082c8d7dbf688a09d3eea0cb59612ee3bee5d7edc31c2ec714f062
Contents?: true
Size: 817 Bytes
Versions: 25
Compression:
Stored size: 817 Bytes
Contents
#!/usr/bin/env ruby # Nothing Flapjack-specific here - feel free to reuse. module Flapjack class Inifile def initialize(string) @data = {} string.split("\n").each do |line| # sections if line =~ /^\s*\[(.+)\]\s*(;.+)*$/ @current_section = $1 @data[@current_section] ||= {} end # parameters if line =~ /^\s*(.+)\s*=\s*([^;]+)\s*(;.+)*$/ # after = captures up to ; then groups everything after ; key = $1.strip value = $2.strip @data[@current_section][key] = value end end end def [](key) @data[key] end def keys @data.keys end def self.read(filename) self.new(File.read(filename)) end def all @data end end end
Version data entries
25 entries across 25 versions & 1 rubygems