class Ella::ProjectGenerator
This beast of a subclass generates a new Ella
project from scratch.
Ella
requires a main project file for almost everything. Consider this, anyone who might want to change the order of this method.
Public Instance Methods
run()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 9 def run Log.yell("Generating New Ella Project: \"#{@directory.human}\"") prepare_project_directory create_main_project_file initialize_git generate_pipeline_directories initialize_config generate_model_directory generate_views generate_controllers initialize_bundle end
Private Instance Methods
create_main_project_file()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 37 def create_main_project_file Ella::Template.new('main.rb', template_vars: { name: @directory }).write Log.newline end
generate_controllers()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 76 def generate_controllers Log.info('Generating root controller') ControllerGenerator.new(directory: 'root').run Log.newline end
generate_model_directory()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 64 def generate_model_directory make_directory('models') Log.newline end
generate_pipeline_directories()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 47 def generate_pipeline_directories Log.info('Generating pipeline directories') make_directory('assets') make_directory('assets/css') make_directory('assets/js') make_directory('public') make_directory('public/css') make_directory('public/js') Log.newline end
generate_views()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 69 def generate_views Log.info('Generating views') ViewGenerator.new(templates: ['layout'], template_vars: { name: @directory }).run ViewGenerator.new(directory: 'root', templates: ['index']).run Log.newline end
initialize_bundle()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 82 def initialize_bundle Log.info('Creating Gemfile') GemfileGenerator.new.run Log.newline end
initialize_config()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 58 def initialize_config Log.info('Generating configuration files') ConfigGenerator.new.run Log.newline end
initialize_git()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 42 def initialize_git Log.info('Initializing git') `git init` end
prepare_project_directory()
click to toggle source
# File lib/ella/generator/project_generator.rb, line 25 def prepare_project_directory if Dir.entries('.').include?(@directory.snake_case) Log.error('A directory with that name already exists. Aborting.') abort end Log.newline Log.info('Creating project core') make_directory(@directory.snake_case) Dir.chdir(@directory.snake_case) make_directory('temp') end