aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/database_configurations/hash_config.rb
diff options
context:
space:
mode:
authorEileen M. Uchitelle <eileencodes@users.noreply.github.com>2018-08-30 13:07:02 -0400
committerGitHub <noreply@github.com>2018-08-30 13:07:02 -0400
commit8f2caec401c8e97d9eb1ea84d8263911c50e1ed6 (patch)
tree5845f95505c0cc35c62e55434b0b45e1104a2d60 /activerecord/lib/active_record/database_configurations/hash_config.rb
parent616afba436b16210c03c323f698e2c3603f16a9f (diff)
parentfdf3f0b9306ba8145e6e3acb84a50e5d23dfe48c (diff)
downloadrails-8f2caec401c8e97d9eb1ea84d8263911c50e1ed6.tar.gz
rails-8f2caec401c8e97d9eb1ea84d8263911c50e1ed6.tar.bz2
rails-8f2caec401c8e97d9eb1ea84d8263911c50e1ed6.zip
Merge pull request #33637 from eileencodes/ar-connection-management-refactoring
Refactor Active Record configurations
Diffstat (limited to 'activerecord/lib/active_record/database_configurations/hash_config.rb')
-rw-r--r--activerecord/lib/active_record/database_configurations/hash_config.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/database_configurations/hash_config.rb b/activerecord/lib/active_record/database_configurations/hash_config.rb
new file mode 100644
index 0000000000..2ee218c730
--- /dev/null
+++ b/activerecord/lib/active_record/database_configurations/hash_config.rb
@@ -0,0 +1,36 @@
+# 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:
+ #
+ # #<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10
+ # @env_name="development", @spec_name="primary", @config={"db_name"}>
+ #
+ # Options are:
+ #
+ # <tt>:env_name</tt> - The Rails environment, ie "development"
+ # <tt>:spec_name</tt> - 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".
+ # <tt>:config</tt> - 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
+ end
+ end
+end