/**
  * Build the package details from user input.
  *
  * @return \Illuminate\Workbench\Package
  */
 protected function buildPackage()
 {
     list($vendor, $name) = $this->getPackageSegments();
     // get current config
     $config = $this->laravel['config']->get('workbench::config');
     $newconfig = isset($config['composer']);
     // get config options
     $authors = $newconfig ? $config['composer']['authors'] : array($config);
     $license = $newconfig ? $config['composer']['license'] : '';
     $psr0 = $this->option('psr0');
     $namespace = str_replace('\\', '\\\\', preg_replace('/[\\\\]+/', '\\', $this->option('ns')));
     return Package::emptyInst()->vendorProvider($vendor)->nameProvider($name)->authorsProvider($authors)->licenseProvider($license)->psr0Provider($psr0)->namespaceProvider($namespace);
 }
 /**
  * create two packages one old fashioned, the other using the new implementation
  */
 private function createPackages()
 {
     $config = $this->config->config()->get('workbench::composer');
     $this->oldfashioned = Package::emptyInst()->vendorProvider('Vendor')->nameProvider('OldFashioned')->authorsProvider($config['authors']);
     $this->newpackage = Package::emptyInst()->vendorProvider('Vendor')->nameProvider('NewPackage')->authorsProvider($config['authors'])->licenseProvider($config['license'])->psr0Provider('psr\\root')->namespaceProvider('custom\\namespace');
     $creator = new PackageCreator(new Filesystem());
     $creator->create($this->oldfashioned, $this->rootdir->url(), true);
     $creator->create($this->newpackage, $this->rootdir->url(), true);
 }
 public function testDefaultPsr0()
 {
     $inst = Package::emptyInst()->vendorProvider($this->obj->vendor)->nameProvider($this->obj->name);
     $this->assertEquals($this->obj->vendor . '\\\\' . $this->obj->name, $inst->psr0);
 }