Sha256: 0fe18efef0e21e4f7d1b6bc10899139efb0ac07ceeab78f3d585039036e8be4d

Contents?: true

Size: 1.55 KB

Versions: 2

Compression:

Stored size: 1.55 KB

Contents

require 'yaml'

module Jenkins
  module Builder
    class Config

      attr_accessor :file, :config

      def initialize

        @file = File.expand_path('~/.jenkins-builder.yaml')

        if File.exist?(@file)
          @config = load(@file)
        else
          init
        end
      end

      def [](k)
        @config[k]
      end

      def []=(k, v)
        @config[k] = v
      end

      def username
        @config['username']
      end

      def username=(name)
        @config['username'] = name
      end

      def password
        @config['password']
      end

      def password=(passwd)
        @config['password'] = passwd
      end

      def aliases
        @config['aliases']
      end

      def aliases=(aliases)
        @config['aliases'] = aliases
      end

      def url
        @config['url']
      end

      def url=(url)
        @config['url'] = url
      end

      def branches
        @config['branches']
      end

      def branches=(branches)
        @config['branches'] = branches
      end

      def hooks_of(job)
        hooks = @config['hooks'] && @config['hooks'][job]
        hooks = [hooks] if hooks.is_a?(String)
        hooks
      end

      def init
        @config = {}
        save(@config, @file)
      end

      def load(file)
        YAML.load(File.read(file)) || {}
      end

      def save(config, file)
        File.open(file, 'w') do |f|
          unless @config.empty?
            f.write(YAML.dump(config))
          end
        end
      end

      def save!
        save(@config, @file)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jenkins-builder-0.2.1 lib/jenkins/builder/config.rb
jenkins-builder-0.2.0 lib/jenkins/builder/config.rb