Module: EventTrain

Defined in:
lib/event_train.rb,
lib/event_train/channel.rb,
lib/event_train/version.rb

Overview

Top-level module.

Defined Under Namespace

Classes: Channel

Constant Summary collapse

VERSION =
File.read(File.expand_path("../../../VERSION", __FILE__)).strip

Class Method Summary collapse

Class Method Details

.build_channel(name:) ⇒ Object



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

def build_channel(name:)
  Channel.new(name: name)
end

.get_channel(name:) ⇒ Object



28
29
30
# File 'lib/event_train.rb', line 28

def get_channel(name:)
  @channels[name] ||= build_channel(name: name)
end

.publish(event_name:, event_data:, channel_name: :global) ⇒ Object

Publishes a new event on the specified channel.



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

def publish(event_name:, event_data:, channel_name: :global)
  channel = get_channel(name: channel_name)
  channel.publish(event_name: event_name, event_data: event_data)
end

.reset_all_channelsObject

Reset all channels, removing all subscribed blocks.



39
40
41
# File 'lib/event_train.rb', line 39

def reset_all_channels
  @channels = {}
end

.subscribe(channel_name: :global, &block) ⇒ Object



22
23
24
25
# File 'lib/event_train.rb', line 22

def subscribe(channel_name: :global, &block)
  channel = get_channel(name: channel_name)
  channel.subscribe(&block)
end