From de2cb20117af68cef4126d8998cc63e178c58187 Mon Sep 17 00:00:00 2001 From: schneems Date: Fri, 8 Jan 2016 09:27:25 -0600 Subject: Use hash like syntax for InternalMetadata Discussion: https://github.com/rails/rails/pull/22967#discussion_r49137035 --- activerecord/lib/active_record/internal_metadata.rb | 10 ++++------ activerecord/lib/active_record/migration.rb | 6 +++--- activerecord/lib/active_record/schema.rb | 2 +- activerecord/lib/active_record/tasks/database_tasks.rb | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/internal_metadata.rb b/activerecord/lib/active_record/internal_metadata.rb index fc1bb0bdce..7bd66028b6 100644 --- a/activerecord/lib/active_record/internal_metadata.rb +++ b/activerecord/lib/active_record/internal_metadata.rb @@ -4,7 +4,7 @@ require 'active_record/scoping/named' module ActiveRecord # This class is used to create a table that keeps track of values and keys such # as which environment migrations were run in. - class InternalMetadata < ActiveRecord::Base + class InternalMetadata < ActiveRecord::Base # :nodoc: class << self def primary_key "key" @@ -18,13 +18,11 @@ module ActiveRecord "#{table_name_prefix}unique_#{ActiveRecord::Base.internal_metadata_table_name}#{table_name_suffix}" end - def store(hash) - hash.each do |key, value| - first_or_initialize(key: key).update_attributes!(value: value) - end + def []=(key, value) + first_or_initialize(key: key).update_attributes!(value: value) end - def value_for(key) + def [](key) where(key: key).pluck(:value).first end diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb index a7e747a482..cd1bda3324 100644 --- a/activerecord/lib/active_record/migration.rb +++ b/activerecord/lib/active_record/migration.rb @@ -1233,15 +1233,15 @@ module ActiveRecord else migrated << version ActiveRecord::SchemaMigration.create!(version: version.to_s) - ActiveRecord::InternalMetadata.store(environment: current_environment) + ActiveRecord::InternalMetadata[:environment] = ActiveRecord::Migrator.current_environment end end def self.last_stored_environment - ActiveRecord::InternalMetadata.value_for(:environment) + ActiveRecord::InternalMetadata[:environment] end - def current_environment + def self.current_environment ActiveRecord::ConnectionHandling::DEFAULT_ENV.call end diff --git a/activerecord/lib/active_record/schema.rb b/activerecord/lib/active_record/schema.rb index 0a0ea33196..784a02d2c3 100644 --- a/activerecord/lib/active_record/schema.rb +++ b/activerecord/lib/active_record/schema.rb @@ -53,7 +53,7 @@ module ActiveRecord end ActiveRecord::InternalMetadata.create_table - ActiveRecord::InternalMetadata.store("environment" => ActiveRecord::ConnectionHandling::DEFAULT_ENV.call) + ActiveRecord::InternalMetadata[:environment] = ActiveRecord::Migrator.current_environment end private diff --git a/activerecord/lib/active_record/tasks/database_tasks.rb b/activerecord/lib/active_record/tasks/database_tasks.rb index 92f6f44de9..d51f38c93f 100644 --- a/activerecord/lib/active_record/tasks/database_tasks.rb +++ b/activerecord/lib/active_record/tasks/database_tasks.rb @@ -221,7 +221,7 @@ module ActiveRecord raise ArgumentError, "unknown format #{format.inspect}" end ActiveRecord::InternalMetadata.create_table - ActiveRecord::InternalMetata.store("environment" => ActiveRecord::ConnectionHandling::DEFAULT_ENV.call) + ActiveRecord::InternalMetadata[:environment] = ActiveRecord::Migrator.current_environment end def load_schema_for(*args) -- cgit v1.2.3