Class: ActiveRecord::Materialized::MigrationBuilder

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/activerecord/materialized/migration_builder.rb

Overview

The data a generated migration needs to provision a view’s empty cache table: table name, migration class name, target version, and inferred columns/types. The file itself is produced by Rails’ generator tooling.

Instance Method Summary collapse

Constructor Details

#initialize(view_class) ⇒ MigrationBuilder

Returns a new instance of MigrationBuilder.



13
14
15
# File 'lib/activerecord/materialized/migration_builder.rb', line 13

def initialize(view_class)
  @view_class = view_class
end

Instance Method Details

#column_definitionsObject



33
34
35
# File 'lib/activerecord/materialized/migration_builder.rb', line 33

def column_definitions
  CacheTableSchema.column_definitions(@view_class.connection, @view_class.resolved_source)
end

#migration_class_nameObject



23
24
25
# File 'lib/activerecord/materialized/migration_builder.rb', line 23

def migration_class_name
  "Create#{table_name.camelize}"
end

#migration_versionObject



28
29
30
# File 'lib/activerecord/materialized/migration_builder.rb', line 28

def migration_version
  ::ActiveRecord::Migration.current_version
end

#table_nameObject



18
19
20
# File 'lib/activerecord/materialized/migration_builder.rb', line 18

def table_name
  @view_class.table_name
end