Module: Bulletin::Store

Defined in:
lib/bulletin/store.rb,
lib/bulletin/store/base.rb,
lib/bulletin/store/null.rb,
lib/bulletin/store/active_record.rb

Overview

The single write boundary. Every backend (today: ActiveRecord/Null; later: Redis/hybrid) implements the same interface, so the middleware, jobs, and UI never need to know how warnings are stored.

Defined Under Namespace

Classes: ActiveRecord, Base, Null

Constant Summary collapse

BACKENDS =
{
  active_record: "Bulletin::Store::ActiveRecord",
  null: "Bulletin::Store::Null"
}.freeze

Class Method Summary collapse

Class Method Details

.build(name) ⇒ Object



15
16
17
18
19
20
# File 'lib/bulletin/store.rb', line 15

def build(name)
  class_name = BACKENDS.fetch(name.to_sym) do
    raise ArgumentError, "Unknown Bulletin store: #{name.inspect} (expected one of #{BACKENDS.keys})"
  end
  Object.const_get(class_name).new
end