Sha256: 86453c93a5faa73ccc4fa7fcd98f3355d2cc727c8273aa98d5402ea01350e5b9

Contents?: true

Size: 760 Bytes

Versions: 42

Compression:

Stored size: 760 Bytes

Contents

module Grit
  
  class Config
    def initialize(repo)
      @repo = repo
    end
    
    def []=(key, value)
      @repo.git.config({}, key, value)
      @data = nil
    end
    
    def [](key)
      data[key]
    end
    
    def fetch(key, default = nil)
      data[key] || default || raise(IndexError.new("key not found"))
    end
    
    def keys
      data.keys
    end
    
    protected
      def data
        @data ||= load_config
      end
      
      def load_config
        hash = {}
        config_lines.map do |line|
          key, value = line.split(/=/, 2)
          hash[key] = value
        end
        hash
      end
      
      def config_lines
        @repo.git.config(:list => true).split(/\n/)
      end
  end # Config
  
end # Grit

Version data entries

42 entries across 42 versions & 17 rubygems

Version Path
boof-grit-1.1.2 lib/grit/config.rb
cho45-grit-0.8.2 lib/grit/config.rb
davetron5000-grit-1.1.2 lib/grit/config.rb
davetron5000-grit-1.1.3 lib/grit/config.rb
joelmoss-grit-1.1.4 lib/grit/config.rb
joelmoss-grit-1.1.5 lib/grit/config.rb
joelmoss-grit-1.1.6 lib/grit/config.rb
koke-grit-0.8.1 lib/grit/config.rb
kubicek-grit-1.0.3 lib/grit/config.rb
kubicek-grit-1.1.1.1 lib/grit/config.rb
kubicek-grit-1.1.1 lib/grit/config.rb
mojombo-grit-0.8.0 lib/grit/config.rb
mojombo-grit-0.8.1 lib/grit/config.rb
mojombo-grit-0.9.3 lib/grit/config.rb
mojombo-grit-0.9.4 lib/grit/config.rb
mojombo-grit-1.1.1 lib/grit/config.rb
pjhyett-grit-0.9.11 lib/grit/config.rb
pjhyett-grit-0.9.12 lib/grit/config.rb
relevance-grit-0.8.1 lib/grit/config.rb
relevance-grit-0.8.3 lib/grit/config.rb