public static function assets() { if (!self::$assets) { self::$assets = Rails\Assets\Assets::instance(); $prefix = str_replace('\\', '/', self::$config->assets->prefix); $basePaths = [str_replace('\\', '/', Rails::config()->paths->application) . $prefix, str_replace('\\', '/', Rails::root() . '/lib') . $prefix, str_replace('\\', '/', Rails::root() . '/vendor') . $prefix]; $paths = []; foreach ($basePaths as $basePath) { if (!is_dir($basePath)) { continue; } $dir = new DirectoryIterator($basePath); foreach ($dir as $file) { if ($file->isDot() || !$file->isDir()) { continue; } $paths[] = $file->getPathname(); } } $customPaths = Rails::application()->config()->assets->paths->toArray(); $paths = array_merge($paths, $customPaths); self::$assets->addPaths($paths); self::$assets->addFilePatterns(self::config()->assets->patterns->toArray()); } return self::$assets; }
public function assetPath($source, array $options = []) { if (strpos($source, '/') !== 0 && strpos($source, 'http') !== 0) { if (!isset($options['digest'])) { $options['digest'] = true; } if (\Rails::config()->assets->enabled) { if (\Rails::config()->serve_static_assets && $options['digest']) { if ($url = \Rails::assets()->findCompiledFile($source)) { return $url; } } if ($file = \Rails::assets()->findFile($source)) { return $file->url(); } } return \Rails::application()->router()->rootPath() . $source; } else { return $source; } }
public function run() { switch ($this->mainArgv) { case 'generate': $gen = new Generators\Generator($this); $gen->parseCmd(); break; case 'assets': $rules = ['assets' => '', 'action' => '']; $opts = new Zend\Console\Getopt($rules); $argv = $opts->getArguments(); if (empty($argv[1])) { $this->terminate("Missing argument 2"); } \Rails::resetConfig('production'); switch ($argv[1]) { case 'compile:all': \Rails::assets()->setConsole($this); \Rails::assets()->compileAll(); break; case strpos($argv[1], 'compile:') === 0: $parts = explode(':', $argv[1]); if (empty($parts[1])) { $this->terminate("Missing asset name to compile"); } \Rails::assets()->setConsole($this); \Rails::assets()->compileFile($parts[1]); break; default: $this->terminate("Unknown action for assets"); break; } break; case 'routes': $routes = $this->createRoutes(); $rules = ['routes' => '', 'f-s' => '']; $opts = new Zend\Console\Getopt($rules); if ($filename = $opts->getOption('f')) { if (true === $filename) { $logFile = \Rails::config()->paths->log->concat('routes.log'); } else { $logFile = \Rails::root() . '/' . $filename; } file_put_contents($logFile, $routes); } $this->write($routes); break; /** * Install database. */ /** * Install database. */ case 'db:create': $m = new \Rails\ActiveRecord\Migration\Migrator(); $m->loadSchema(); break; /** * Run all/pending migrations. * Creates migrations table as well. */ /** * Run all/pending migrations. * Creates migrations table as well. */ case 'db:migrate': $m = new \Rails\ActiveRecord\Migration\Migrator(); $m->run(); break; /** * Runs seeds. */ /** * Runs seeds. */ case 'db:seed': $m = new \Rails\ActiveRecord\Migration\Migrator(); $m->runSeeds(); break; case 'db:schema:dump': $dumper = new \Rails\ActiveRecord\Schema\Dumper(\Rails\ActiveRecord\ActiveRecord::connection()); $dumper->export(\Rails::root() . '/db/schema.sql'); break; } }
private function createHelperFile($base_name) { $name = $base_name . '_helper.php'; $path = Rails::config()->paths->helpers; if (is_file($path . '/' . $name)) { return; } $class_name = Rails::services()->get('inflector')->camelize($base_name) . 'Helper'; $contents = "<?php\nclass {$class_name} extends Rails\\ActionView\\Helper\n{\n \n}"; file_put_contents($path . '/' . $name, $contents); }
public function isLocal() { return \Rails::config()->consider_all_requests_local ?: $this->remoteIp() == self::LOCALHOST; }
public function dropDatabase($dbName) { if ($this->adapter->getDriver()->getConnection()->getDriverName() == 'Sqlite') { $dbFile = \Rails::config()['paths']['root']->expand($dbName); if (is_file($dbFile)) { unlink($dbFile); } } else { $ddl = new DropDatabase($dbName); $this->queryAdapter($ddl); } }