diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-03-15 19:34:20 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-03-22 16:21:59 -0700 |
commit | cd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac (patch) | |
tree | 59dbe54c54ed1674c50a86b25201f33ab9f0ae95 /activerecord | |
parent | 4b4c8bdc776e2d42cd070d9cb1b3cc22f82469b1 (diff) | |
download | rails-cd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac.tar.gz rails-cd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac.tar.bz2 rails-cd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac.zip |
decouple column definition from the database connection
Diffstat (limited to 'activerecord')
3 files changed, 11 insertions, 11 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb index 4642d6a0c7..952b872f7a 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb @@ -15,7 +15,7 @@ module ActiveRecord # are typically created by methods in TableDefinition, and added to the # +columns+ attribute of said TableDefinition object, in order to be used # for generating a number of table creation or table changing SQL statements. - class ColumnDefinition < Struct.new(:base, :name, :type, :limit, :precision, :scale, :default, :null) #:nodoc: + class ColumnDefinition < Struct.new(:name, :type, :limit, :precision, :scale, :default, :null) #:nodoc: def string_to_binary(value) value end @@ -213,7 +213,7 @@ module ActiveRecord raise ArgumentError, "you can't redefine the primary key column '#{name}'. To define a custom primary key, pass { id: false } to create_table." end - column = self[name] || new_column_definition(@base, name, type) + column = self[name] || new_column_definition(name, type) limit = options.fetch(:limit) do native[type][:limit] if native[type].is_a?(Hash) @@ -272,12 +272,12 @@ module ActiveRecord end private - def create_column_definition(base, name, type) - ColumnDefinition.new base, name, type + def create_column_definition(name, type) + ColumnDefinition.new name, type end - def new_column_definition(base, name, type) - definition = create_column_definition base, name, type + def new_column_definition(name, type) + definition = create_column_definition name, type @columns << definition @columns_hash[name] = definition definition diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 940de7e4f6..48a3d5439f 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -344,8 +344,8 @@ module ActiveRecord private - def create_column_definition(base, name, type) - ColumnDefinition.new base, name, type + def create_column_definition(name, type) + ColumnDefinition.new name, type end end diff --git a/activerecord/test/cases/column_definition_test.rb b/activerecord/test/cases/column_definition_test.rb index 000096c4b9..dbb2f223cd 100644 --- a/activerecord/test/cases/column_definition_test.rb +++ b/activerecord/test/cases/column_definition_test.rb @@ -36,7 +36,7 @@ module ActiveRecord def test_should_not_include_default_clause_when_default_is_null column = Column.new("title", nil, "varchar(20)") column_def = ColumnDefinition.new( - @adapter, column.name, "string", + column.name, "string", column.limit, column.precision, column.scale, column.default, column.null) assert_equal "title varchar(20)", @viz.accept(column_def) end @@ -44,7 +44,7 @@ module ActiveRecord def test_should_include_default_clause_when_default_is_present column = Column.new("title", "Hello", "varchar(20)") column_def = ColumnDefinition.new( - @adapter, column.name, "string", + column.name, "string", column.limit, column.precision, column.scale, column.default, column.null) assert_equal %Q{title varchar(20) DEFAULT 'Hello'}, @viz.accept(column_def) end @@ -52,7 +52,7 @@ module ActiveRecord def test_should_specify_not_null_if_null_option_is_false column = Column.new("title", "Hello", "varchar(20)", false) column_def = ColumnDefinition.new( - @adapter, column.name, "string", + column.name, "string", column.limit, column.precision, column.scale, column.default, column.null) assert_equal %Q{title varchar(20) DEFAULT 'Hello' NOT NULL}, @viz.accept(column_def) end |