class Composer

Public Class Methods

development(data_container, env) click to toggle source
# File lib/composer.rb, line 3
def self.development(data_container, env)
    puts '-- Installing Composer development dependencies'
    docker_command = self.get_docker_command(data_container, env) + 'install --verbose --profile'
    puts '---- Running: ' << docker_command
    fail 'Composer development installation failed' unless system docker_command
end
production(data_container, env) click to toggle source
# File lib/composer.rb, line 10
def self.production(data_container, env)
    puts '---- Installing Composer production dependencies'
    docker_command = self.get_docker_command(data_container, env) + 'install --no-dev --optimize-autoloader --no-interaction --verbose --profile'
    puts '---- Running: ' << docker_command
    fail 'Composer production installation failed' unless system docker_command
end

Private Class Methods

convert_env_args_to_env_hash(args) click to toggle source
# File lib/composer.rb, line 30
def self.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

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

    return docker_command
end