Class: BarkestCore::UserAlertGenerators

Inherits:
Object
  • Object
show all
Defined in:
app/models/barkest_core/user_alert_generators.rb

Overview

A repository for user alert generators.

Register any alert generators that you want to give the user automatically at login.

Class Method Summary collapse

Class Method Details

.[](type) ⇒ Object

Gets a subset of the generators that have been registered.

Provide the type of generators you would like to return.



34
35
36
37
38
# File 'app/models/barkest_core/user_alert_generators.rb', line 34

def self.[](type)
  type ||= :info
  type = type.to_sym
  (list[type] || []).freeze
end

.allObject

Gets all of the generators that have been registered.

This list does not include the type.



26
27
28
# File 'app/models/barkest_core/user_alert_generators.rb', line 26

def self.all
  list.values.flatten.freeze
end

.each(&block) ⇒ Object

Enumerates all of the generators that have been registered.

Yields the type and generator.



13
14
15
16
17
18
19
20
# File 'app/models/barkest_core/user_alert_generators.rb', line 13

def self.each(&block)
  return unless block_given?
  list.each do |type,generators|
    generators.each do |generator|
      yield type, generator
    end
  end
end

.register(type = nil, &block) ⇒ Object

Registers an alert generator.

The generator shold be designed to take a User model as an argument.



44
45
46
47
48
49
# File 'app/models/barkest_core/user_alert_generators.rb', line 44

def self.register(type = nil, &block)
  type ||= :info
  type = type.to_sym
  list[type] ||= []
  list[type] << block
end