original_string: public function addComponent($componentName): bool
      {
          if (is_array($componentName)) {
              foreach ($componentName as $cn) {
                  $this->addComponent($cn);
              }
  
              return true;
          }
          $componentFile = 'app/components/' . Inflector::underscore($componentName) . '.js';
  
          if (file_exists(JS . DS . $componentFile)) {
              $this->_addDependency($componentFile);
  
              return true;
          }
  
          return false;
      }
code: public function addComponent($componentName): bool
      {
          if (is_array($componentName)) {
              foreach ($componentName as $cn) {
                  $this->addComponent($cn);
              }
  
              return true;
          }
          $componentFile = 'app/components/' . Inflector::underscore($componentName) . '.js';
  
          if (file_exists(JS . DS . $componentFile)) {
              $this->_addDependency($componentFile);
  
              return true;
          }
  
          return false;
      }
code_tokens: public function addComponent ( $ componentName ) : bool { if ( is_array ( $ componentName ) ) { foreach ( $ componentName as $ cn ) { $ this -> addComponent ( $ cn ) ; } return true ; } $ componentFile = 'app/components/' . Inflector :: underscore ( $ componentName ) . '.js' ; if ( file_exists ( JS . DS . $ componentFile ) ) { $ this -> _addDependency ( $ componentFile ) ; return true ; } return false ; }
docstring: Include one or more JS components
  
  @param string|array $componentName CamelCased component name    (e.g. SelectorAddressList)
  @return bool
docstring_tokens: Include one or more JS components