Class: EY::Serverside::DependencyManager::Composer

Inherits:
Base
  • Object
show all
Defined in:
lib/engineyard-serverside/dependency_manager/composer.rb

Instance Attribute Summary

Attributes inherited from Base

#config, #runner, #servers, #shell

Instance Method Summary collapse

Methods inherited from Base

#bundler_config, #check, #check_ey_config, #check_node_npm, #check_ruby_bundler, #clean_bundle_on_system_version_change, detect, #gemfile?, #initialize, #lockfile, #rails_version, #uses_sqlite3?, #write_system_version

Constructor Details

This class inherits a constructor from EY::Serverside::DependencyManager::Base

Instance Method Details

#composer_available?Boolean

Returns:

  • (Boolean)


40
41
42
43
44
45
46
47
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 40

def composer_available?
  begin
    run "command -v composer > /dev/null"
    return true
  rescue EY::Serverside::RemoteFailure
    return false
  end
end

#composer_installObject



32
33
34
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 32

def composer_install
    run "composer install --no-interaction --working-dir #{paths.active_release}"
end

#composer_json?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 28

def composer_json?
  paths.composer_json.exist?
end

#composer_lock?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 24

def composer_lock?
  paths.composer_lock.exist?
end

#composer_selfupdateObject



36
37
38
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 36

def composer_selfupdate
    run "composer self-update"
end

#detected?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 5

def detected?
   composer_lock? || composer_json?
end

#installObject



9
10
11
12
13
14
15
16
17
18
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 9

def install
  if composer_available?
    shell.status "Checking for composer updates..."
    composer_selfupdate
    shell.status "Installing composer packages (composer.#{lock_or_json} detected)"
    composer_install
  else
    shell.warning "composer.#{lock_or_json} detected but composer not available."
  end
end

#lock_or_jsonObject



20
21
22
# File 'lib/engineyard-serverside/dependency_manager/composer.rb', line 20

def lock_or_json
  composer_lock? ? 'lock' : 'json'
end