Class: Rubyists::PgtOutbox::Table
- Inherits:
-
Object
- Object
- Rubyists::PgtOutbox::Table
- Defined in:
- lib/sequel/pgt_outbox/table.rb
Overview
The Outbox Table
Class Method Summary collapse
Instance Method Summary collapse
- #attempted_column ⇒ Object
- #attempts_column ⇒ Object
- #boolean_completed_column ⇒ Object
- #completed_column ⇒ Object
- #create! ⇒ Object
- #created_column ⇒ Object
- #data_after_column ⇒ Object
- #data_before_column ⇒ Object
- #event_prefix ⇒ Object
- #event_type_column ⇒ Object
- #function ⇒ Object
-
#initialize(table, db, opts: {}) ⇒ Table
constructor
A new instance of Table.
- #last_error_column ⇒ Object
- #metadata_column ⇒ Object
- #name ⇒ Object
- #quoted_name ⇒ Object
- #timestamp_type ⇒ Object
- #updated_column ⇒ Object
- #uuid_function ⇒ Object
- #uuid_primary_key? ⇒ Boolean
Constructor Details
#initialize(table, db, opts: {}) ⇒ Table
Returns a new instance of Table.
16 17 18 19 20 |
# File 'lib/sequel/pgt_outbox/table.rb', line 16 def initialize(table, db, opts: {}) @table = table @opts = opts @db = db end |
Class Method Details
.create!(table, db, opts: {}) ⇒ Object
12 13 14 |
# File 'lib/sequel/pgt_outbox/table.rb', line 12 def self.create!(table, db, opts: {}) new(table, db, opts:).create! end |
Instance Method Details
#attempted_column ⇒ Object
66 67 68 |
# File 'lib/sequel/pgt_outbox/table.rb', line 66 def attempted_column @attempted_column ||= opts.fetch(:attempted_column, :attempted) end |
#attempts_column ⇒ Object
62 63 64 |
# File 'lib/sequel/pgt_outbox/table.rb', line 62 def attempts_column @attempts_column ||= opts.fetch(:attempts_column, :attempts) end |
#boolean_completed_column ⇒ Object
90 91 92 |
# File 'lib/sequel/pgt_outbox/table.rb', line 90 def boolean_completed_column @boolean_completed_column ||= opts.fetch(:boolean_completed_column, false) end |
#completed_column ⇒ Object
58 59 60 |
# File 'lib/sequel/pgt_outbox/table.rb', line 58 def completed_column @completed_column ||= opts.fetch(:completed_column, :completed) end |
#create! ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/sequel/pgt_outbox/table.rb', line 22 def create! db.run 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp"' if uuid_primary_key? create_table! integer_columns! completed_column! string_columns! jsonb_columns! indexes! self end |
#created_column ⇒ Object
50 51 52 |
# File 'lib/sequel/pgt_outbox/table.rb', line 50 def created_column @created_column ||= opts.fetch(:created_column, :created) end |
#data_after_column ⇒ Object
78 79 80 |
# File 'lib/sequel/pgt_outbox/table.rb', line 78 def data_after_column @data_after_column ||= opts.fetch(:data_after_column, :data_after) end |
#data_before_column ⇒ Object
82 83 84 |
# File 'lib/sequel/pgt_outbox/table.rb', line 82 def data_before_column @data_before_column ||= opts.fetch(:data_before_column, :data_before) end |
#event_prefix ⇒ Object
46 47 48 |
# File 'lib/sequel/pgt_outbox/table.rb', line 46 def event_prefix @event_prefix ||= opts.fetch(:event_prefix, table) end |
#event_type_column ⇒ Object
70 71 72 |
# File 'lib/sequel/pgt_outbox/table.rb', line 70 def event_type_column @event_type_column ||= opts.fetch(:event_type_column, :event_type) end |
#function ⇒ Object
102 103 104 |
# File 'lib/sequel/pgt_outbox/table.rb', line 102 def function @function ||= Function.create!(self, opts:) end |
#last_error_column ⇒ Object
74 75 76 |
# File 'lib/sequel/pgt_outbox/table.rb', line 74 def last_error_column @last_error_column ||= opts.fetch(:last_error_column, :last_error) end |
#metadata_column ⇒ Object
86 87 88 |
# File 'lib/sequel/pgt_outbox/table.rb', line 86 def @metadata_column ||= opts.fetch(:metadata_column, :metadata) end |
#name ⇒ Object
34 35 36 |
# File 'lib/sequel/pgt_outbox/table.rb', line 34 def name @name ||= opts.fetch(:outbox_table, "#{table}_outbox") end |
#quoted_name ⇒ Object
42 43 44 |
# File 'lib/sequel/pgt_outbox/table.rb', line 42 def quoted_name @quoted_name ||= db.send(:quote_schema_table, name) end |
#timestamp_type ⇒ Object
38 39 40 |
# File 'lib/sequel/pgt_outbox/table.rb', line 38 def opts.fetch(:timestamp_type, :timestamptz) end |
#updated_column ⇒ Object
54 55 56 |
# File 'lib/sequel/pgt_outbox/table.rb', line 54 def updated_column @updated_column ||= opts.fetch(:updated_column, :updated) end |
#uuid_function ⇒ Object
98 99 100 |
# File 'lib/sequel/pgt_outbox/table.rb', line 98 def uuid_function @uuid_function ||= opts.fetch(:uuid_function, :uuid_generate_v4) end |
#uuid_primary_key? ⇒ Boolean
94 95 96 |
# File 'lib/sequel/pgt_outbox/table.rb', line 94 def uuid_primary_key? @uuid_primary_key ||= opts.fetch(:uuid_primary_key, false) end |