Class: Rubyists::PgtOutbox::Trigger
- Inherits:
-
Object
- Object
- Rubyists::PgtOutbox::Trigger
- Defined in:
- lib/sequel/pgt_outbox/trigger.rb
Overview
The Outbox Trigger
Constant Summary collapse
- DEFAULT_OPTS =
{ after: true, each_row: true }.freeze
Class Method Summary collapse
Instance Method Summary collapse
- #after ⇒ Object
- #create! ⇒ Object
- #each_row ⇒ Object
-
#initialize(db, table, function, events: %i[insert update delete],, opts: { when: nil }) ⇒ Trigger
constructor
A new instance of Trigger.
- #name ⇒ Object
- #trigger_opts ⇒ Object
- #where ⇒ Object
Constructor Details
#initialize(db, table, function, events: %i[insert update delete],, opts: { when: nil }) ⇒ Trigger
Returns a new instance of Trigger.
17 18 19 20 21 22 23 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 17 def initialize(db, table, function, events: %i[insert update delete], opts: { when: nil }) @db = db @table = table @function = function @events = events @opts = opts end |
Class Method Details
.create!(db, table, function, events: %i[insert update delete],, opts: { when: nil }) ⇒ Object
13 14 15 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 13 def self.create!(db, table, function, events: %i[insert update delete], opts: { when: nil }) new(db, table, function, events: events, opts: opts).create! end |
Instance Method Details
#after ⇒ Object
34 35 36 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 34 def after trigger_opts.fetch(:after) end |
#create! ⇒ Object
29 30 31 32 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 29 def create! db.create_trigger(table, name, function, events:, each_row:, after:, when: where) self end |
#each_row ⇒ Object
42 43 44 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 42 def each_row trigger_opts.fetch(:each_row) end |
#name ⇒ Object
25 26 27 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 25 def name @name ||= opts.fetch(:trigger_name, function) end |
#trigger_opts ⇒ Object
46 47 48 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 46 def trigger_opts @trigger_opts ||= DEFAULT_OPTS.merge(opts.fetch(:trigger_opts, {})) end |
#where ⇒ Object
38 39 40 |
# File 'lib/sequel/pgt_outbox/trigger.rb', line 38 def where opts.fetch(:when, nil) end |