/**
  * Event for after Comments requests are updated in the application
  *
  * @param   Event  $event  Event object
  *
  * @return  void
  *
  * @since   1.0
  */
 public function onCommentAfterUpdate(Event $event)
 {
     // Pull the arguments array
     $arguments = $event->getArguments();
     // Add a RTC label if the item is in that status
     $this->checkRTClabel($arguments['hookData'], $arguments['github'], $arguments['logger'], $arguments['project'], $arguments['table']);
 }
 /**
  * Event for after test is submitted in the application.
  *
  * @param   Event  $event  The Event object.
  *
  * @return  void
  *
  * @since   1.0
  */
 public function onTestAfterSubmit(Event $event)
 {
     // Pull the arguments array
     $arguments = $event->getArguments();
     $status = $this->getStatus($arguments['project'], $arguments['data']->testsSuccess, $arguments['data']->testsFailure, $arguments['issueNumber']);
     $this->createStatus($arguments['github'], $arguments['project'], $arguments['issueNumber'], $status);
 }
 /**
  * Event for after pull requests are updated in the application
  *
  * @param   Event  $event  Event object
  *
  * @return  void
  *
  * @since   1.0
  */
 public function onPullAfterUpdate(Event $event)
 {
     // Pull the arguments array
     $arguments = $event->getArguments();
     // Place the JoomlaCode ID in the issue title if it isn't already there
     $this->updatePullTitle($arguments['hookData'], $arguments['github'], $arguments['logger'], $arguments['project'], $arguments['table']);
     // Add a RTC label if the item is in that status
     $this->addRTClabel($arguments['hookData'], $arguments['github'], $arguments['logger'], $arguments['project'], $arguments['table']);
 }
 /**
  * Event for after issues are created in the application
  *
  * @param   Event  $event  Event object
  *
  * @return  void
  *
  * @since   1.0
  */
 public function onIssueAfterCreate(Event $event)
 {
     // Pull the arguments array
     $arguments = $event->getArguments();
     // Only perform these events if this is a new issue, action will be 'opened'
     if ($arguments['action'] === 'opened') {
         // Add a "no code" label
         $this->addCodelabel($arguments['hookData'], $arguments['github'], $arguments['logger'], $arguments['project']);
     }
 }
 /**
  * Test the offsetUnset method.
  *
  * @return  void
  *
  * @since   1.0
  */
 public function testOffsetUnset()
 {
     // No exception.
     unset($this->instance['foo']);
     $this->instance['foo'] = 'bar';
     unset($this->instance['foo']);
     $this->assertFalse($this->instance->hasArgument('foo'));
 }
 /**
  * Constructor
  *
  * @param   object  &$subject  The object to observe
  * @param   array   $config    An optional associative array of configuration settings.
  *                             Recognized key values include 'name', 'group', 'params', 'language'
  *                             (this list is not meant to be comprehensive).
  *
  * @since   11.1
  */
 public function __construct(&$subject, $config = array())
 {
     // Get the parameters.
     if (isset($config['params'])) {
         if ($config['params'] instanceof Registry) {
             $this->params = $config['params'];
         } else {
             $this->params = new Registry();
             $this->params->loadString($config['params']);
         }
     }
     // Get the plugin name.
     if (isset($config['name'])) {
         $this->_name = $config['name'];
     }
     // Get the plugin type.
     if (isset($config['type'])) {
         $this->_type = $config['type'];
     }
     parent::__construct($subject);
 }
 /**
  * Trigger an event.
  *
  * @param   EventInterface|string  $event  The event object or name.
  *
  * @return  EventInterface  The event after being passed through all listeners.
  *
  * @since   1.0
  */
 public function triggerEvent($event)
 {
     if (!$event instanceof EventInterface) {
         if (isset($this->events[$event])) {
             $event = $this->events[$event];
         } else {
             $event = new Event($event);
         }
     }
     if (isset($this->listeners[$event->getName()])) {
         foreach ($this->listeners[$event->getName()] as $listener) {
             if ($event->isStopped()) {
                 return $event;
             }
             if ($listener instanceof Closure) {
                 call_user_func($listener, $event);
             } else {
                 call_user_func(array($listener, $event->getName()), $event);
             }
         }
     }
     return $event;
 }
 /**
  * Listen to onSomething.
  *
  * @param   Event  $event  The event.
  *
  * @return  void
  *
  * @since   1.0
  */
 public function onSomething(Event $event)
 {
     $event->setArgument('listeners', array('first'));
 }
 /**
  * RegisterContentTypeFailureEvent constructor.
  *
  * @param   string      $type       The name of the content type
  * @param   \Exception  $exception  The exception
  */
 public function __construct($type, $exception)
 {
     parent::__construct('onRegisterContentTypeFailure', ['type' => $type, 'exception' => $exception]);
 }
 /**
  * RenderContentTypeSuccessEvent constructor.
  *
  * @param   string           $type    The name of the content type
  * @param   StreamInterface  $stream  The stream to which the content is added
  */
 public function __construct($type, $stream)
 {
     parent::__construct('onAfter' . $type, ['type' => $type, 'stream' => $stream]);
 }
 /**
  * DefinitionCreatedEvent constructor.
  *
  * @param   string        $entityClass The class of the entity
  * @param   Entity        $definition  The definition
  * @param   EntityBuilder $builder     The builder
  */
 public function __construct($entityClass, Entity $definition, EntityBuilder $builder)
 {
     parent::__construct('onDefinitionCreated', ['entityClass' => $entityClass, 'definition' => $definition, 'builder' => $builder]);
 }
 /**
  * DefinitionCreatedEvent constructor.
  *
  * @param   string        $entityName The name of the entity
  * @param   EntityBuilder $builder    The builder
  */
 public function __construct($entityName, EntityBuilder $builder)
 {
     parent::__construct('onCreateDefinition', ['className' => $entityName, 'builder' => $builder]);
 }
 /**
  * QueryDatabaseEvent constructor.
  *
  * @param   string       $entityClass The class of the entity
  * @param   QueryBuilder $builder     The query builder
  */
 public function __construct($entityClass, QueryBuilder $builder)
 {
     parent::__construct('onQueryDatabase', ['entityClass' => $entityClass, 'query' => $builder]);
 }
 /**
  * RegisterContentTypeEvent constructor.
  *
  * @param   string    $type     The name of the content type
  * @param   callable  $handler  The content type handler
  */
 public function __construct($type, $handler)
 {
     parent::__construct('onBeforeRegisterContentType', ['type' => $type, 'handler' => $handler]);
 }
 /**
  * Triggers an event if a listener is set.
  *
  * @param   string  $eventName  Name of the event to trigger.
  * @param   array   $arguments  Associative array of arguments for the event.
  *
  * @return  void
  *
  * @since   1.0
  */
 protected function triggerEvent($eventName, array $arguments)
 {
     if (!$this->listenerSet) {
         return;
     }
     /* @type \JTracker\Application $application */
     $application = $this->getContainer()->get('app');
     $event = new Event($eventName);
     // Add default event arguments.
     $event->addArgument('github', $this->github ?: GithubFactory::getInstance($application))->addArgument('logger', $application->getLogger())->addArgument('project', $application->getProject());
     // Add event arguments passed as parameters.
     foreach ($arguments as $name => $value) {
         $event->addArgument($name, $value);
     }
     // Trigger the event.
     $this->dispatcher->triggerEvent($event);
 }
 /**
  * Triggers an event if a listener is set
  *
  * @param   string                 $eventName  Name of the event to trigger
  * @param   AbstractDatabaseTable  $table      Table object
  * @param   array                  $optional   Associative array of optional arguments for the event
  *
  * @return  void
  *
  * @since   1.0
  */
 protected function triggerEvent($eventName, AbstractDatabaseTable $table, array $optional = array())
 {
     if ($this->listenerSet) {
         $event = new Event($eventName);
         // Add the event params
         $event->addArgument('hookData', $this->hookData)->addArgument('table', $table)->addArgument('github', $this->github)->addArgument('logger', $this->logger)->addArgument('project', $this->project);
         // Add optional params if present
         if (count($optional) > 0) {
             foreach ($optional as $name => $value) {
                 $event->addArgument($name, $value);
             }
         }
         // Trigger the event
         $this->dispatcher->triggerEvent($event);
     }
 }
 /**
  * RenderContentTypeFailureEvent constructor.
  *
  * @param   string      $type       The name of the content type
  * @param   \Exception  $exception  The exception
  */
 public function __construct($type, $exception)
 {
     parent::__construct('onRender' . $type . 'Failure', ['type' => $type, 'exception' => $exception]);
 }
 /**
  * RenderContentTypeEvent constructor.
  *
  * @param   string               $type     The name of the content type
  * @param   ContentTypeInterface $content  The content element
  */
 public function __construct($type, $content)
 {
     parent::__construct('onBeforeRender' . $type, ['type' => $type, 'content' => $content]);
 }
Example #19
0
 /**
  * Constructor.
  *
  * @param   string            $name     The event name.
  * @param   SessionInterface  $session  The SessionInterface object for this event.
  *
  * @since   __DEPLOY_VERSION__
  */
 public function __construct($name, SessionInterface $session)
 {
     parent::__construct($name);
     $this->session = $session;
 }
Example #20
0
 /**
  * Add argument to event. It will use a setter method if one exists. The setters have the signature:
  *
  * set<ArgumentName>($value): mixed
  *
  * where:
  *
  * $value  is the value being set by the user
  * It returns the value to return to set in the $arguments array of the event.
  *
  * @param   string  $name   Argument name.
  * @param   mixed   $value  Value.
  *
  * @return  $this
  *
  * @since   __DEPLOY_VERSION__
  */
 public function setArgument($name, $value)
 {
     $methodName = 'set' . ucfirst($name);
     if (method_exists($this, $methodName)) {
         $value = $this->{$methodName}($value);
     }
     return parent::setArgument($name, $value);
 }
 /**
  * Listen to onSomething.
  *
  * @param   Event  $event  The event.
  *
  * @return  void
  *
  * @since   1.0
  */
 public function onSomething(Event $event)
 {
     $listeners = $event->getArgument('listeners');
     $listeners[] = 'third';
     $event->setArgument('listeners', $listeners);
 }