Module: PgSqlTriggers::Registry
- Defined in:
- lib/pg_sql_triggers/registry.rb,
lib/pg_sql_triggers/registry/manager.rb,
lib/pg_sql_triggers/registry/validator.rb
Overview
Registry module provides a unified API for querying and managing triggers.
Defined Under Namespace
Class Method Summary collapse
-
.diff(trigger_name = nil) ⇒ Hash
Checks for drift between DSL definitions and database state.
-
.disable(trigger_name, actor:, confirmation: nil) ⇒ PgSqlTriggers::TriggerRegistry
Disables a trigger by name.
-
.disabled ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns only disabled triggers.
-
.drifted ⇒ Array<Hash>
Returns all triggers that have drifted from their expected state.
-
.drop(trigger_name, actor:, reason:, confirmation: nil) ⇒ true
Drops a trigger by name.
-
.dropped ⇒ Array<Hash>
Returns all triggers that have been dropped from the database.
-
.enable(trigger_name, actor:, confirmation: nil) ⇒ PgSqlTriggers::TriggerRegistry
Enables a trigger by name.
-
.enabled ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns only enabled triggers.
-
.for_table(table_name) ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns triggers for a specific table.
-
.in_sync ⇒ Array<Hash>
Returns all triggers that are in sync with their expected state.
-
.list ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns all registered triggers.
-
.re_execute(trigger_name, actor:, reason:, confirmation: nil) ⇒ PgSqlTriggers::TriggerRegistry
Re-executes a trigger by name (drops and recreates it).
-
.register(definition) ⇒ PgSqlTriggers::TriggerRegistry
Registers a trigger definition in the registry.
-
.unknown_triggers ⇒ Array<Hash>
Returns all unknown (external) triggers not managed by this gem.
-
.validate! ⇒ true
Validates all triggers in the registry.
Class Method Details
.diff(trigger_name = nil) ⇒ Hash
Checks for drift between DSL definitions and database state.
87 88 89 |
# File 'lib/pg_sql_triggers/registry.rb', line 87 def self.diff(trigger_name = nil) Manager.diff(trigger_name) end |
.disable(trigger_name, actor:, confirmation: nil) ⇒ PgSqlTriggers::TriggerRegistry
Disables a trigger by name.
151 152 153 154 155 |
# File 'lib/pg_sql_triggers/registry.rb', line 151 def self.disable(trigger_name, actor:, confirmation: nil) (actor, :disable_trigger) trigger = find_trigger!(trigger_name) trigger.disable!(confirmation: confirmation, actor: actor) end |
.disabled ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns only disabled triggers.
71 72 73 |
# File 'lib/pg_sql_triggers/registry.rb', line 71 def self.disabled Manager.disabled end |
.drifted ⇒ Array<Hash>
Returns all triggers that have drifted from their expected state.
94 95 96 |
# File 'lib/pg_sql_triggers/registry.rb', line 94 def self.drifted Manager.drifted end |
.drop(trigger_name, actor:, reason:, confirmation: nil) ⇒ true
Drops a trigger by name.
168 169 170 171 172 |
# File 'lib/pg_sql_triggers/registry.rb', line 168 def self.drop(trigger_name, actor:, reason:, confirmation: nil) (actor, :drop_trigger) trigger = find_trigger!(trigger_name) trigger.drop!(reason: reason, confirmation: confirmation, actor: actor) end |
.dropped ⇒ Array<Hash>
Returns all triggers that have been dropped from the database.
115 116 117 |
# File 'lib/pg_sql_triggers/registry.rb', line 115 def self.dropped Manager.dropped end |
.enable(trigger_name, actor:, confirmation: nil) ⇒ PgSqlTriggers::TriggerRegistry
Enables a trigger by name.
136 137 138 139 140 |
# File 'lib/pg_sql_triggers/registry.rb', line 136 def self.enable(trigger_name, actor:, confirmation: nil) (actor, :enable_trigger) trigger = find_trigger!(trigger_name) trigger.enable!(confirmation: confirmation, actor: actor) end |
.enabled ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns only enabled triggers.
64 65 66 |
# File 'lib/pg_sql_triggers/registry.rb', line 64 def self.enabled Manager.enabled end |
.for_table(table_name) ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns triggers for a specific table.
79 80 81 |
# File 'lib/pg_sql_triggers/registry.rb', line 79 def self.for_table(table_name) Manager.for_table(table_name) end |
.in_sync ⇒ Array<Hash>
Returns all triggers that are in sync with their expected state.
101 102 103 |
# File 'lib/pg_sql_triggers/registry.rb', line 101 def self.in_sync Manager.in_sync end |
.list ⇒ ActiveRecord::Relation<PgSqlTriggers::TriggerRegistry>
Returns all registered triggers.
57 58 59 |
# File 'lib/pg_sql_triggers/registry.rb', line 57 def self.list Manager.list end |
.re_execute(trigger_name, actor:, reason:, confirmation: nil) ⇒ PgSqlTriggers::TriggerRegistry
Re-executes a trigger by name (drops and recreates it).
185 186 187 188 189 |
# File 'lib/pg_sql_triggers/registry.rb', line 185 def self.re_execute(trigger_name, actor:, reason:, confirmation: nil) (actor, :drop_trigger) # Re-execute requires same permission as drop trigger = find_trigger!(trigger_name) trigger.re_execute!(reason: reason, confirmation: confirmation, actor: actor) end |
.register(definition) ⇒ PgSqlTriggers::TriggerRegistry
Registers a trigger definition in the registry.
50 51 52 |
# File 'lib/pg_sql_triggers/registry.rb', line 50 def self.register(definition) Manager.register(definition) end |
.unknown_triggers ⇒ Array<Hash>
Returns all unknown (external) triggers not managed by this gem.
108 109 110 |
# File 'lib/pg_sql_triggers/registry.rb', line 108 def self.unknown_triggers Manager.unknown_triggers end |