Sha256: 9e9f341708b7e7aa3a1df53a5dc3cf40718c973b8a3554039de55736b35f1c37

Contents?: true

Size: 724 Bytes

Versions: 49

Compression:

Stored size: 724 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

49 entries across 49 versions & 10 rubygems

Version Path
gitlab-grit-2.8.3 lib/grit/config.rb
gitlab-grit-2.8.2 lib/grit/config.rb
gitlab-grit-2.8.1 lib/grit/config.rb
gitlab-grit-2.8.0 lib/grit/config.rb
gitlab-grit-2.7.3 lib/grit/config.rb
gitlab-grit-2.6.12 lib/grit/config.rb
gitlab-grit-2.7.2 lib/grit/config.rb
gitlab-grit-2.6.11 lib/grit/config.rb
gitlab-grit-2.7.1 lib/grit/config.rb
gitlab-grit-2.6.10 lib/grit/config.rb
gitlab-grit-2.7.0 lib/grit/config.rb
gitlab-grit-2.6.9 lib/grit/config.rb
gitlab-grit-2.6.8 lib/grit/config.rb
gitlab-grit-2.6.7 lib/grit/config.rb
gitlab-grit-2.6.6 lib/grit/config.rb
gitlab-grit-2.6.5 lib/grit/config.rb
gitlab-grit-2.6.4 lib/grit/config.rb
gitlab-grit-2.6.3 lib/grit/config.rb
gitlab-grit-2.6.2 lib/grit/config.rb
gitlab-grit-2.5.2 lib/grit/config.rb