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

Version Path
flapjack-0.6.43 lib/flapjack/inifile.rb
flapjack-0.6.42 lib/flapjack/inifile.rb
flapjack-0.6.41 lib/flapjack/inifile.rb
flapjack-0.6.40 lib/flapjack/inifile.rb
flapjack-0.6.39 lib/flapjack/inifile.rb
flapjack-0.6.38 lib/flapjack/inifile.rb
flapjack-0.6.37 lib/flapjack/inifile.rb
flapjack-0.6.36 lib/flapjack/inifile.rb
flapjack-0.6.35 lib/flapjack/inifile.rb
flapjack-0.6.34 lib/flapjack/inifile.rb
flapjack-0.6.33 lib/flapjack/inifile.rb
flapjack-0.6.32 lib/flapjack/inifile.rb
flapjack-0.6.31 lib/flapjack/inifile.rb
flapjack-0.6.30 lib/flapjack/inifile.rb
flapjack-0.6.29 lib/flapjack/inifile.rb
flapjack-0.6.28 lib/flapjack/inifile.rb
flapjack-0.6.27 lib/flapjack/inifile.rb
flapjack-0.6.26 lib/flapjack/inifile.rb
flapjack-0.6.25 lib/flapjack/inifile.rb
flapjack-0.6.24 lib/flapjack/inifile.rb