protected function createExtensionListener(ExtensionInterface $extension)
 {
     $source = $this->publisher->getExtensionPublishSource($extension);
     $me = $this;
     $this->createListener($source, function ($resource) use($me, $extension) {
         $me->publishExtension($extension);
     });
 }
 public function testNotes()
 {
     $themeBag = $this->getMockThemeBag();
     $publisher = new ThemePublisher($themeBag);
     $publisher->setDispatcher($dispatcher = new Dispatcher());
     $publisher->noting(function ($note) {
         $_SERVER['__theme.publisher.note'] = $note;
     });
     $publisher->note('foo', 'info');
     $this->assertTrue(isset($_SERVER['__theme.publisher.note']));
     $this->assertEquals('<info>foo</info>', $_SERVER['__theme.publisher.note']);
     unset($_SERVER['__theme.publisher.note']);
 }
 /**
  * Registers the theme publisher that will be used.
  *
  * @return void
  */
 protected function registerThemePublisher()
 {
     $this->app['theme.publisher'] = $this->app->share(function ($app) {
         $publisher = new ThemePublisher($app['themes']);
         $publisher->setPackagePath($app['path.base'] . '/vendor');
         $publisher->setDispatcher($app['events']);
         return $publisher;
     });
     $this->app['command.theme.publish'] = $this->app->share(function ($app) {
         return new ThemePublishCommand($app['theme.publisher']);
     });
 }