diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-16 17:24:07 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-16 17:24:07 -0700 |
commit | 9c734c51351a21acf247f0780f975eeb9261cc6f (patch) | |
tree | b878d270dcf1948e82141631366f0a07920fb9f1 | |
parent | e2a070cf47fb9a845ecf53ff2f437390598fe0b7 (diff) | |
parent | a57990ff51800bb05cebaf102e7d288487c98bd8 (diff) | |
download | rails-9c734c51351a21acf247f0780f975eeb9261cc6f.tar.gz rails-9c734c51351a21acf247f0780f975eeb9261cc6f.tar.bz2 rails-9c734c51351a21acf247f0780f975eeb9261cc6f.zip |
Merge pull request #6358 from jfirebaugh/schema_define
Call methods on the correct instance in AR::Schema.define
-rw-r--r-- | activerecord/lib/active_record/schema.rb | 17 | ||||
-rw-r--r-- | activerecord/test/cases/ar_schema_test.rb | 7 |
2 files changed, 17 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/schema.rb b/activerecord/lib/active_record/schema.rb index d815ab05ac..599e68379a 100644 --- a/activerecord/lib/active_record/schema.rb +++ b/activerecord/lib/active_record/schema.rb @@ -34,6 +34,15 @@ module ActiveRecord ActiveRecord::Migrator.migrations_paths end + def define(info, &block) + instance_eval(&block) + + unless info[:version].blank? + initialize_schema_migrations_table + assume_migrated_upto_version(info[:version], migrations_paths) + end + end + # Eval the given block. All methods available to the current connection # adapter are available within the block, so you can easily use the # database definition DSL to build up your schema (+create_table+, @@ -46,13 +55,7 @@ module ActiveRecord # ... # end def self.define(info={}, &block) - schema = new - schema.instance_eval(&block) - - unless info[:version].blank? - initialize_schema_migrations_table - assume_migrated_upto_version(info[:version], schema.migrations_paths) - end + new.define(info, &block) end end end diff --git a/activerecord/test/cases/ar_schema_test.rb b/activerecord/test/cases/ar_schema_test.rb index 588adc38e3..b2eac0349b 100644 --- a/activerecord/test/cases/ar_schema_test.rb +++ b/activerecord/test/cases/ar_schema_test.rb @@ -37,6 +37,13 @@ if ActiveRecord::Base.connection.supports_migrations? end end end + + def test_schema_subclass + Class.new(ActiveRecord::Schema).define(:version => 9) do + create_table :fruits + end + assert_nothing_raised { @connection.select_all "SELECT * FROM fruits" } + end end end |