Sha256: da06ebb6e531219fd90d35b72c103b6183d40d87cd1e7f882820c9347c7deee0

Contents?: true

Size: 718 Bytes

Versions: 2

Compression:

Stored size: 718 Bytes

Contents

class Travis::Deploy::Config
  class Builder
    attr_reader :config, :env, :keychain

    def initialize(keychain, env)
      @keychain = keychain
      @config = YAML.load(keychain.source)
      @env = env
    end

    def build
      includes = []

      includes << config.delete('includes') if config['includes']
      includes << env_config.delete('includes') if env_config['includes']

      includes.flatten!

      result = env_config
      includes.each do |name|
        include_config = keychain.includes(name)
        result.merge! include_config['all'] || {}
        result.merge! include_config[env] || {}
      end

      result
    end

    def env_config
      config.fetch env, {}
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
travis-deploy-0.2.1 lib/travis/deploy/config/builder.rb
travis-deploy-0.2.0 lib/travis/deploy/config/builder.rb