From dee94d8ab5b7d27653052441a3b408db380dd784 Mon Sep 17 00:00:00 2001 From: Jon Leighton Date: Fri, 16 Dec 2011 12:00:25 +0000 Subject: Defaults hash can go on the model --- .../lib/active_record/connection_adapters/schema_cache.rb | 15 +-------------- activerecord/lib/active_record/model_schema.rb | 2 +- 2 files changed, 2 insertions(+), 15 deletions(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/connection_adapters/schema_cache.rb b/activerecord/lib/active_record/connection_adapters/schema_cache.rb index 447e309f23..a8f7fd3648 100644 --- a/activerecord/lib/active_record/connection_adapters/schema_cache.rb +++ b/activerecord/lib/active_record/connection_adapters/schema_cache.rb @@ -2,7 +2,6 @@ module ActiveRecord module ConnectionAdapters class SchemaCache attr_reader :columns, :columns_hash, :primary_keys, :tables - attr_reader :column_defaults attr_reader :connection def initialize(conn) @@ -19,12 +18,6 @@ module ActiveRecord }] end - @column_defaults = Hash.new do |h, table_name| - h[table_name] = Hash[columns[table_name].map { |col| - [col.name, col.default] - }] - end - @primary_keys = Hash.new do |h, table_name| h[table_name] = table_exists?(table_name) ? conn.primary_key(table_name) : 'id' @@ -38,15 +31,10 @@ module ActiveRecord @tables[name] = connection.table_exists?(name) end - # Clears out internal caches: - # - # * columns - # * columns_hash - # * tables + # Clears out internal caches def clear! @columns.clear @columns_hash.clear - @column_defaults.clear @tables.clear end @@ -54,7 +42,6 @@ module ActiveRecord def clear_table_cache!(table_name) @columns.delete table_name @columns_hash.delete table_name - @column_defaults.delete table_name @primary_keys.delete table_name @tables.delete table_name end diff --git a/activerecord/lib/active_record/model_schema.rb b/activerecord/lib/active_record/model_schema.rb index 9ed871a1cb..36417d89f7 100644 --- a/activerecord/lib/active_record/model_schema.rb +++ b/activerecord/lib/active_record/model_schema.rb @@ -236,7 +236,7 @@ module ActiveRecord # Returns a hash where the keys are column names and the values are # default values when instantiating the AR object for this table. def column_defaults - @column_defaults ||= connection.schema_cache.column_defaults[table_name] + @column_defaults ||= Hash[columns.map { |c| [c.name, c.default] }] end # Returns an array of column names as strings. -- cgit v1.2.3