class EY::Serverside::DependencyManager::Composer

Public Instance Methods

check() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 11
        def check
          unless composer_available?
            raise EY::Serverside::RemoteFailure.new("composer.#{lock_or_json} detected but composer not available!")
          end

          if composer_json? && !composer_lock?
            shell.warning <<-WARN
composer.json found but composer.lock missing!
This may result in different versions of packages
being installed than what you tested with.

To fix this problem, commit your composer.lock to the repository and redeploy.
            WARN
          end
        end
composer_available?() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 54
def composer_available?
  begin
    run "command -v composer > /dev/null"
    return true
  rescue EY::Serverside::RemoteFailure
    return false
  end
end
composer_install() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 46
def composer_install
  run %{export GIT_SSH="#{ENV['GIT_SSH']}" && composer install --no-interaction --no-dev --optimize-autoloader --working-dir #{paths.active_release}}
end
composer_json?() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 42
def composer_json?
  paths.composer_json.exist?
end
composer_lock?() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 38
def composer_lock?
  paths.composer_lock.exist?
end
composer_selfupdate() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 50
def composer_selfupdate
  run "command -v composer | xargs -I composer find composer -user #{config.user} -exec {} self-update \\;"
end
detected?() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 7
def detected?
  composer_lock? || composer_json?
end
install() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 27
def install
  shell.status "Checking for composer updates..."
  composer_selfupdate
  shell.status "Installing composer packages (composer.#{lock_or_json} detected)"
  composer_install
end
lock_or_json() click to toggle source
# File lib/engineyard-serverside/dependency_manager/composer.rb, line 34
def lock_or_json
  composer_lock? ? 'lock' : 'json'
end