class Rails::Generators::Db::System::ChangeGenerator
:nodoc:
def self.default_generator_root
def self.default_generator_root path = File.expand_path(File.join(base_name, "app"), base_root) path if File.exist?(path) end
def all_database_gems
def all_database_gems DATABASES.map { |database| gem_for_database(database) } end
def all_database_gems_regex
def all_database_gems_regex all_database_gem_names = all_database_gems.map(&:first) /(\b#{all_database_gem_names.join('\b|\b')}\b)/ end
def all_docker_builds
def all_docker_builds DATABASES.map { |database| docker_for_database_build(database).nil? ? nil : docker_for_database_build(database) }.compact! end
def all_docker_builds_regex
def all_docker_builds_regex /(\b#{all_docker_builds.join('\b|\b')}\b)/ end
def all_docker_deploys
def all_docker_deploys DATABASES.map { |database| docker_for_database_deploy(database).nil? ? nil : docker_for_database_deploy(database) }.compact! end
def all_docker_deploys_regex
def all_docker_deploys_regex /(\b#{all_docker_deploys.join('\b|\b')}\b)/ end
def edit_database_config
def edit_database_config template("config/databases/#{options[:database]}.yml", "config/database.yml") end
def edit_dockerfile
def edit_dockerfile dockerfile_path = File.expand_path("Dockerfile", destination_root) return unless File.exist?(dockerfile_path) build_name = docker_for_database_build deploy_name = docker_for_database_deploy if build_name gsub_file("Dockerfile", all_docker_builds_regex, build_name) end if deploy_name gsub_file("Dockerfile", all_docker_deploys_regex, deploy_name) end end
def edit_gemfile
def edit_gemfile name, version = gem_for_database gsub_file("Gemfile", all_database_gems_regex, name) gsub_file("Gemfile", gem_entry_regex_for(name), gem_entry_for(name, *version)) end
def gem_entry_for(*gem_name_and_version)
def gem_entry_for(*gem_name_and_version) gem_name_and_version.map! { |segment| "\"#{segment}\"" } "gem #{gem_name_and_version.join(", ")}" end
def gem_entry_regex_for(gem_name)
def gem_entry_regex_for(gem_name) /^gem.*\b#{gem_name}\b.*/ end
def initialize(*)
def initialize(*) super unless DATABASES.include?(options[:to]) raise Error, "Invalid value for --to option. Supported preconfigurations are: #{DATABASES.join(", ")}." end opt = options.dup opt[:database] ||= opt[:to] self.options = opt.freeze end