# frozen_string_literal: true
module Rails
module Command
module Actions
# Change to the application's path if there is no config.ru file in current directory.
# This allows us to run rails server from other directories, but still get
# the main config.ru and properly set the tmp directory.
def set_application_directory!
Dir.chdir(File.expand_path("../..", APP_PATH)) unless File.exist?(File.expand_path("config.ru"))
end
def require_application!
require ENGINE_PATH if defined?(ENGINE_PATH)
require APP_PATH if defined?(APP_PATH)
end
def boot_application!
require_application!
Rails.application.require_environment! if defined?(APP_PATH)
end
def load_environment_config!
require_application!
# Only run initializers that are in the :all group, which includes the
# :load_environment_config initializer.
Rails.application.initialize!(:_) if defined?(APP_PATH)
end
if defined?(ENGINE_PATH)
def load_tasks
Rake.application.init("rails")
Rake.application.load_rakefile
end
def load_generators
engine = ::Rails::Engine.find(ENGINE_ROOT)
Rails::Generators.namespace = engine.railtie_namespace
engine.load_generators
end
else
def load_tasks
Rails.application.load_tasks
end
def load_generators
Rails.application.load_generators
end
end
end
end
end