aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-03-15 19:34:20 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2013-03-22 16:21:59 -0700
commitcd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac (patch)
tree59dbe54c54ed1674c50a86b25201f33ab9f0ae95
parent4b4c8bdc776e2d42cd070d9cb1b3cc22f82469b1 (diff)
downloadrails-cd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac.tar.gz
rails-cd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac.tar.bz2
rails-cd07f194dc2d8e4278ea9a7d4ccebfe74513b0ac.zip
decouple column definition from the database connection
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb12
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb4
-rw-r--r--activerecord/test/cases/column_definition_test.rb6
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