Class: PgSqlTriggers::Drift::Detector
- Inherits:
-
Object
- Object
- PgSqlTriggers::Drift::Detector
- Defined in:
- lib/pg_sql_triggers/drift/detector.rb
Class Method Summary collapse
-
.detect(trigger_name) ⇒ Object
Detect drift for a single trigger.
-
.detect_all ⇒ Object
Detect drift for all triggers.
-
.detect_for_table(table_name) ⇒ Object
Detect drift for a specific table.
Class Method Details
.detect(trigger_name) ⇒ Object
Detect drift for a single trigger
11 12 13 14 15 |
# File 'lib/pg_sql_triggers/drift/detector.rb', line 11 def detect(trigger_name) registry_entry = TriggerRegistry.find_by(trigger_name: trigger_name) db_trigger = DbQueries.find_trigger(trigger_name) detect_with_preloaded(registry_entry, db_trigger) end |
.detect_all ⇒ Object
Detect drift for all triggers
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/pg_sql_triggers/drift/detector.rb', line 18 def detect_all registry_entries = TriggerRegistry.all.to_a db_triggers = DbQueries.all_triggers db_trigger_map = db_triggers.index_by { |t| t["trigger_name"] } results = registry_entries.map do |entry| detect_with_preloaded(entry, db_trigger_map[entry.trigger_name]) end # Find unknown (external) triggers not in registry registry_trigger_names = registry_entries.to_set(&:trigger_name) db_triggers.each do |db_trigger| next if registry_trigger_names.include?(db_trigger["trigger_name"]) results << unknown_state(db_trigger) end results end |
.detect_for_table(table_name) ⇒ Object
Detect drift for a specific table
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/pg_sql_triggers/drift/detector.rb', line 40 def detect_for_table(table_name) registry_entries = TriggerRegistry.for_table(table_name).to_a db_triggers = DbQueries.find_triggers_for_table(table_name) db_trigger_map = db_triggers.index_by { |t| t["trigger_name"] } results = registry_entries.map do |entry| detect_with_preloaded(entry, db_trigger_map[entry.trigger_name]) end # Find unknown triggers on this table registry_trigger_names = registry_entries.to_set(&:trigger_name) db_triggers.each do |db_trigger| next if registry_trigger_names.include?(db_trigger["trigger_name"]) results << unknown_state(db_trigger) end results end |