# frozen_string_literal: true module ActiveRecord class DatabaseConfigurations # A HashConfig object is created for each database configuration entry that # is created from a hash. # # A hash config: # # { "development" => { "database" => "db_name" } } # # Becomes: # # #"db_name"}> # # ==== Options # # * :env_name - The Rails environment, i.e. "development". # * :spec_name - The specification name. In a standard two-tier # database configuration this will default to "primary". In a multiple # database three-tier database configuration this corresponds to the name # used in the second tier, for example "primary_readonly". # * :config - The config hash. This is the hash that contains the # database adapter, name, and other important information for database # connections. class HashConfig < DatabaseConfig attr_reader :config def initialize(env_name, spec_name, config) super(env_name, spec_name) @config = config end # Determines whether a database configuration is for a replica / readonly # connection. If the +replica+ key is present in the config, +replica?+ will # return +true+. def replica? config["replica"] end # The migrations paths for a database configuration. If the # +migrations_paths+ key is present in the config, +migrations_paths+ # will return its value. def migrations_paths config["migrations_paths"] end end end end