Sha256: d2c99255e75220502ff721903f7499d2abae4923f9e68deb89e161ea378f91da

Contents?: true

Size: 1.27 KB

Versions: 14

Compression:

Stored size: 1.27 KB

Contents

require 'rubygems'
require 'stickler/repository/rubygems_authenticator'

module Stickler
  class Client
    class ConfigFile
      def initalize
        @updated = false
      end

      def config_path
        File.join(Gem.user_home, '.gem', 'stickler')
      end

      def configuration
        Gem.configuration.load_file(config_path)
      end

      def update( opts )
        self.server   = opts[:server]   if opts[:server]
        self.upstream = opts[:upstream] if opts[:upstream]
        return updated?
      end

      def updated?
        return @updated
      end

      def server
        configuration[:server]
      end

      def server=( server )
        config = configuration.merge( :server => server )
        save_config( config )
      end

      def upstream
        configuration[:upstream] || ::Stickler::Repository::RubygemsAuthenticator.rubygems_uri.to_s
      end

      def upstream=( upstream )
        config = configuration.merge( :upstream => upstream )
        save_config( config )
      end

      def save_config( config )
        dirname = File.dirname(config_path)
        Dir.mkdir(dirname) unless File.exists?(dirname)

        File.open(config_path, "w") do |f|
          f.write config.to_yaml
        end
        @updated = true
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
stickler-2.4.2 lib/stickler/client/config_file.rb
stickler-2.4.1 lib/stickler/client/config_file.rb
stickler-2.4.0 lib/stickler/client/config_file.rb
stickler-2.3.0 lib/stickler/client/config_file.rb
stickler-2.2.4 lib/stickler/client/config_file.rb
stickler-2.2.3 lib/stickler/client/config_file.rb
stickler-2.2.2 lib/stickler/client/config_file.rb
stickler-2.1.4 lib/stickler/client/config_file.rb
stickler-2.1.3 lib/stickler/client/config_file.rb
stickler-2.1.2 lib/stickler/client/config_file.rb
stickler-2.1.1 lib/stickler/client/config_file.rb
stickler-2.1.0 lib/stickler/client/config_file.rb
stickler-2.0.2 lib/stickler/client/config_file.rb
stickler-2.0.1 lib/stickler/client/config_file.rb