protected function perform_composer_action(ComposerAPI $composer)
 {
     $options = array();
     if ($this->get_show_latest_versions()) {
         $options[] = '--latest';
     }
     return $composer->show($options);
 }
 /**
  * 
  * {@inheritDoc}
  * @see \axenox\PackageManager\Actions\AbstractComposerAction::perform_composer_action()
  */
 protected function perform_composer_action(ComposerAPI $composer)
 {
     if (!$this->get_input_data_sheet()->get_meta_object()->is_exactly('axenox.PackageManager.PACKAGE_INSTALLED')) {
         throw new ActionRuntimeException('Wrong input object for action "' . $this->get_alias_with_namespace() . '" - "' . $this->get_input_data_sheet()->get_meta_object()->get_alias_with_namespace() . '"! This action requires input data based based on "axenox.PackageManager.PACKAGE_INSTALLED"!');
     }
     $packages = array();
     foreach ($this->get_input_data_sheet()->get_rows() as $nr => $row) {
         if (!isset($row['name']) || !$row['name']) {
             throw new ActionRuntimeException('Missing package name in row ' . $nr . ' of input data for action "' . $this->get_alias_with_namespace() . '"!');
         }
         $packages[] = $row['name'];
     }
     return $composer->remove($packages);
 }
 /**
  * 
  * @return \axenox\PackageManager\ComposerAPI
  */
 protected function get_composer()
 {
     $composer = new ComposerAPI($this->get_workbench()->get_installation_path());
     $composer->set_path_to_composer_home($this->get_workbench()->filemanager()->get_path_to_user_data_folder() . DIRECTORY_SEPARATOR . '.composer');
     return $composer;
 }
 protected function perform_composer_action(ComposerAPI $composer)
 {
     return $composer->update();
 }