Module: ActiveRecord::Materialized::ViewConfigurationClassMethods::ClassMethods
Overview
Instance Method Summary
collapse
#cold_read, #max_staleness, #refresh_debounce, #refresh_on_change, #resolved_cold_read_strategy, #resolved_max_staleness, #resolved_refresh_debounce, #resolved_refresh_strategy, #resolved_warm_up_queries, #warm_up, #warm_up!
#aggregate_analysis, #delta_maintaining?, #incremental_from, #incremental_key_columns, #incremental_keys, #incremental_source_override?, #incrementally_maintainable?, #maintenance_key_columns, #record_summary_delta!, #record_write_change!, #record_write_delta!, #refresh_mode, #resolved_incremental_source, #resolved_refresh_mode, #view_definition
Instance Method Details
#depends_on(*tables) ⇒ Object
55
56
57
|
# File 'lib/activerecord/materialized/view_configuration_class_methods.rb', line 55
def depends_on(*tables)
DependencyRegistry.register(view_class, tables)
end
|
#inherited(subclass) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/activerecord/materialized/view_configuration_class_methods.rb', line 28
def inherited(subclass)
super
T.unsafe(subclass).instance_variable_set(:@dependency_tables, [])
T.unsafe(subclass).instance_variable_set(:@refresh_strategy, nil)
T.unsafe(subclass).instance_variable_set(:@refresh_debounce, nil)
T.unsafe(subclass).instance_variable_set(:@refresh_mode, nil)
T.unsafe(subclass).instance_variable_set(:@incremental_source_definition, nil)
T.unsafe(subclass).instance_variable_set(:@incremental_key_columns, nil)
T.unsafe(subclass).instance_variable_set(:@cold_read_strategy, nil)
T.unsafe(subclass).instance_variable_set(:@warm_up_definition, nil)
end
|
#materialized_from(&block) ⇒ Object
49
50
51
52
|
# File 'lib/activerecord/materialized/view_configuration_class_methods.rb', line 49
def materialized_from(&block)
@source_definition = T.let(block, T.nilable(SourceDefinition))
Registry.register(view_class) unless view_class.abstract_class?
end
|
#resolved_source ⇒ Object
60
61
62
63
64
65
|
# File 'lib/activerecord/materialized/view_configuration_class_methods.rb', line 60
def resolved_source
resolve_source_definition(
@source_definition,
"materialized_from is required for #{view_class.name || view_class.view_key}"
)
end
|
#view_class ⇒ Object
23
24
25
|
# File 'lib/activerecord/materialized/view_configuration_class_methods.rb', line 23
def view_class
T.cast(self, T.class_of(View))
end
|
#view_key ⇒ Object
41
42
43
44
45
46
|
# File 'lib/activerecord/materialized/view_configuration_class_methods.rb', line 41
def view_key
return T.must(view_class.name).underscore if view_class.name.present?
table = T.let(T.unsafe(view_class).instance_variable_get(:@table_name), T.nilable(String))
table.presence || "anonymous_view_#{view_class.object_id}"
end
|