/**
  * Get all modules.
  *
  * @return array
  */
 protected function getModules()
 {
     $modules = $this->module->all();
     $results = array();
     foreach ($modules as $module) {
         $results[] = $this->getModuleInformation($module);
     }
     return array_filter($results);
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $module = $this->argument('module');
     if ($module) {
         return $this->rollback($module);
     } else {
         foreach ($this->module->all() as $module) {
             $this->rollback($module['slug']);
         }
     }
 }
 /**
  * Seed the specific module.
  *
  * @param  string $module
  * @return array
  */
 protected function seed($module)
 {
     $params = array();
     $moduleName = studly_case($module);
     $namespace = $this->module->getNamespace();
     $rootSeeder = $moduleName . 'DatabaseSeeder';
     $fullPath = $namespace . $moduleName . '\\Database\\Seeds\\' . $rootSeeder;
     if (\File::exists(base_path($fullPath . '.php'))) {
         if ($this->option('class')) {
             $params['--class'] = $this->option('class');
         } else {
             $params['--class'] = $fullPath;
         }
         if ($option = $this->option('database')) {
             $params['--database'] = $option;
         }
         $this->call('db:seed', $params);
     }
 }
 /**
  * Get migrations path.
  *
  * @return string
  */
 protected function getMigrationPath($slug)
 {
     $path = $this->module->getModulePath($slug) . 'Database/Migrations';
     return $path;
 }
 /**
  * Replace placeholder text with correct values.
  *
  * @return string
  */
 protected function formatContent($content)
 {
     return str_replace(['{{slug}}', '{{name}}', '{{module}}', '{{namespace}}', '{{singular}}', '{{model}}'], [$this->slug, studly_case($this->name), studly_case($this->slug), $this->module->getNamespace(), str_singular($this->name), str_singular(studly_case($this->name))], $content);
 }
 /**
  * Replace placeholder text with correct values.
  *
  * @param  string $content
  * @return string
  */
 protected function formatContent($content)
 {
     return str_replace(['{{className}}', '{{moduleName}}', '{{namespace}}', '{{pluralClassName}}', '{{singularClassName}}'], [$this->className, $this->moduleName, $this->module->getNamespace(), str_plural(strtolower($this->className)), str_singular(strtolower($this->className))], $content);
 }
 /**
  * Get module migration path.
  *
  * @return string
  */
 protected function getPath()
 {
     $path = $this->module->getModulePath($this->moduleName);
     return $path . 'Resources/Views/Emails/';
 }
 /**
  * Replace placeholder text with correct values.
  *
  * @param  string $content
  * @return string
  */
 protected function formatModelContent($content)
 {
     return str_replace(['{{namespace}}', '{{moduleName}}', '{{className}}', '{{table}}'], [$this->module->getNamespace(), $this->moduleName, $this->model, $this->table], $content);
 }