Module: Notify

Defined in:
lib/notify.rb,
lib/notify/config.rb,
lib/notify/engine.rb,
lib/notify/errors.rb,
lib/notify/mailer.rb,
lib/notify/version.rb,
lib/notify/registry.rb,
lib/notify/dispatcher.rb,
lib/notify/test_helper.rb,
lib/notify/adapters/base.rb,
lib/notify/payload_class.rb,
lib/notify/adapters/email.rb

Defined Under Namespace

Modules: Adapters, TestHelper Classes: AdapterNotRegistered, Config, DeliveryError, Dispatcher, Engine, Error, Mailer, MissingRecipients, MissingSubject, NotImplementedError, PayloadClass, Registry, UnknownMessage

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.adaptersObject



49
50
51
# File 'lib/notify.rb', line 49

def adapters
  registry&.adapters || {}
end

.build_registry!(templates_path) ⇒ Object



53
54
55
# File 'lib/notify.rb', line 53

def build_registry!(templates_path)
  @registry = Registry.new(templates_path)
end

.configObject



17
18
19
# File 'lib/notify.rb', line 17

def config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ Object

Yields:



21
22
23
# File 'lib/notify.rb', line 21

def configure
  yield config
end

.deliveriesObject



70
71
72
# File 'lib/notify.rb', line 70

def deliveries
  @deliveries ||= []
end

.message(name, **payload) ⇒ Object



79
80
81
82
83
84
85
# File 'lib/notify.rb', line 79

def message(name, **payload)
  if test_mode?
    deliveries << Dispatcher.new.capture_for_test(name, **payload)
  else
    Dispatcher.new.dispatch(name, **payload)
  end
end

.messagesObject



45
46
47
# File 'lib/notify.rb', line 45

def messages
  registry&.messages || {}
end

.register_adapter(key, klass) ⇒ Object



29
30
31
# File 'lib/notify.rb', line 29

def register_adapter(key, klass)
  adapter_classes[key.to_sym] = klass
end

.registered_adaptersObject



33
34
35
# File 'lib/notify.rb', line 33

def registered_adapters
  adapter_classes.dup
end

.registryObject



41
42
43
# File 'lib/notify.rb', line 41

def registry
  @registry
end

.reset_adapters!Object



37
38
39
# File 'lib/notify.rb', line 37

def reset_adapters!
  @adapter_classes = {}
end

.reset_config!Object



25
26
27
# File 'lib/notify.rb', line 25

def reset_config!
  @config = Config.new
end

.reset_registry!Object



57
58
59
# File 'lib/notify.rb', line 57

def reset_registry!
  @registry = nil
end

.reset_test_mode!Object



74
75
76
77
# File 'lib/notify.rb', line 74

def reset_test_mode!
  @test_mode = false
  @deliveries&.clear
end

.test_mode!Object



61
62
63
64
# File 'lib/notify.rb', line 61

def test_mode!
  @test_mode = true
  @deliveries ||= []
end

.test_mode?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/notify.rb', line 66

def test_mode?
  @test_mode == true
end