/** * @param string $dir * @param string $package * @param array $parts * * @return array */ private function getAll($dir, $package, array $parts) { $name = empty($parts) ? $package : sprintf("%s.%s", implode(".", $parts), $package); $lines = array('//***********************************************', '//* Do not edit. This file will be auto-updated *', '//***********************************************', '', sprintf('goog.provide("%s.All");', $name), sprintf('goog.require("%s");', $name), ''); $this->eachDirectory($dir, function ($folder) use($name, &$lines) { $lines[] = sprintf('goog.require("%s.%s.All");', $name, $folder); }); $lines = self::space($lines); $this->eachComponent($dir, function ($component) use($name, &$lines) { $lines[] = sprintf('goog.require("%s.%s");', $name, $component); }); $lines = self::space($lines); $this->eachFile($dir, function ($file) use($name, &$lines) { if (GemsString::endsWith($file, ".js") && !GemsString::startsWith($file, "_") && !GemsString::endsWith($file, ".Test.js")) { $lines[] = sprintf('goog.require("%s.%s");', $name, substr($file, 0, -3)); } }); $lines = self::space($lines); return $lines; }
/** * @param string $dir * * @return array */ private function getPackage($dir) { $DS = DIRECTORY_SEPARATOR; $lines = ['/** Import package wide styles here. **/', '']; self::eachFile($dir, function ($file) use($dir, $DS, &$lines) { if (!GemsString::endsWith($file, ".scss") || $file == '_All.scss' || $file == '_Package.scss') { return; } $lines[] = sprintf('@import "%s";', str_replace('.scss', '', $file)); }); return $lines; }