class Composer

Public Class Methods

new() click to toggle source
# File lib/build/composer.rb, line 3
def initialize

end

Public Instance Methods

convert_env_args_to_env_hash(args) click to toggle source

@param [hash] args @return [hash]

# File lib/build/composer.rb, line 44
def convert_env_args_to_env_hash(args)
    env_hash = {}

    # do first arg
    env_var = args[:env].split('=')
    env_hash[env_var[0].to_sym] = env_var[1]

    # do rest of args
    args.extras.each do |x|
        env_var = x.split('=')
        env_hash[env_var[0].to_sym] = env_var[1]
    end

    env_hash
end
development(data_container_name, env_hash) click to toggle source

@param [string] data_container_name @param [hash] env_hash

# File lib/build/composer.rb, line 9
def development(data_container_name, env_hash)
    puts '-- Installing Composer development dependencies'
    docker_command = get_docker_command(data_container_name, env_hash) + 'install --verbose --profile'
    puts '---- Running: ' << docker_command
    fail 'Composer development installation failed' unless system docker_command
end
production(data_container_name, env_hash) click to toggle source

@param [string] data_container_name @param [hash] env_hash

# File lib/build/composer.rb, line 18
def production(data_container_name, env_hash)
    puts '---- Installing Composer production dependencies'
    docker_command = get_docker_command(data_container_name, env_hash) + 'install --no-dev --optimize-autoloader --no-interaction --verbose --profile'
    puts '---- Running: ' << docker_command
    fail 'Composer production installation failed' unless system docker_command
end

Private Instance Methods

get_docker_command(data_container_name, env_hash) click to toggle source

@param [string] data_container_name @param [hash] env_hash @return [string]

# File lib/build/composer.rb, line 29
def get_docker_command(data_container_name, env_hash)
    puts '---- Launching Composer container'
    docker_env_vars = env_hash.map{|k,v| "#{k}=#{v}"}.join(' --env ')
    docker_command = "docker run --rm --volumes-from #{data_container_name} "
    if docker_env_vars.length > 5
        docker_command << "--env #{docker_env_vars} "
    end
    docker_command << 'vjftw/composer '

    docker_command
end