123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::MigrationProxy

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, ::Struct
Instance Chain:
self, ::Struct
Inherits: Struct
Defined in: activerecord/lib/active_record/migration.rb

Overview

MigrationProxy is used to defer loading of the actual migration classes until they are needed

Class Method Summary

Instance Attribute Summary

  • #announce readonly
  • #disable_ddl_transaction readonly
  • #filename rw

    MigrationProxy is used to defer loading of the actual migration classes until they are needed.

  • #migrate readonly
  • #name rw

    MigrationProxy is used to defer loading of the actual migration classes until they are needed.

  • #scope rw

    MigrationProxy is used to defer loading of the actual migration classes until they are needed.

  • #version rw

    MigrationProxy is used to defer loading of the actual migration classes until they are needed.

  • #write readonly

Instance Method Summary

Constructor Details

.new(name, version, filename, scope) ⇒ MigrationProxy

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1169

def initialize(name, version, filename, scope)
  super
  @migration = nil
end

Instance Attribute Details

#announce (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1178

delegate :migrate, :announce, :write, :disable_ddl_transaction, to: :migration

#disable_ddl_transaction (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1178

delegate :migrate, :announce, :write, :disable_ddl_transaction, to: :migration

#filename (rw)

MigrationProxy is used to defer loading of the actual migration classes until they are needed

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1168

MigrationProxy = Struct.new(:name, :version, :filename, :scope)

#migrate (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1178

delegate :migrate, :announce, :write, :disable_ddl_transaction, to: :migration

#name (rw)

MigrationProxy is used to defer loading of the actual migration classes until they are needed

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1168

MigrationProxy = Struct.new(:name, :version, :filename, :scope)

#scope (rw)

MigrationProxy is used to defer loading of the actual migration classes until they are needed

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1168

MigrationProxy = Struct.new(:name, :version, :filename, :scope)

#version (rw)

MigrationProxy is used to defer loading of the actual migration classes until they are needed

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1168

MigrationProxy = Struct.new(:name, :version, :filename, :scope)

#write (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1178

delegate :migrate, :announce, :write, :disable_ddl_transaction, to: :migration

Instance Method Details

#basename

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1174

def basename
  File.basename(filename)
end

#load_migration (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1185

def load_migration
  Object.send(:remove_const, name) rescue nil

  load(File.expand_path(filename))
  name.constantize.new(name, version)
end

#migration (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/migration.rb', line 1181

def migration
  @migration ||= load_migration
end