Sha256: 0eae574f1eed858177ea0cec87d221364a030488d6ab3e03545924027166a68b

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

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

3 entries across 3 versions & 1 rubygems

Version Path
jenkins-builder-0.1.6 lib/jenkins/builder/config.rb
jenkins-builder-0.1.5 lib/jenkins/builder/config.rb
jenkins-builder-0.1.4 lib/jenkins/builder/config.rb