Class: Textus::Hooks::Loader::Dsl

Inherits:
Object
  • Object
show all
Defined in:
lib/textus/hooks/loader.rb

Overview

A small DSL object passed to user hook blocks. Routes ‘.on(…)` to the EventBus and `.rpc(…)` / `.register(…)` to the RpcRegistry.

Instance Method Summary collapse

Constructor Details

#initialize(events:, rpc:) ⇒ Dsl

Returns a new instance of Dsl.



7
8
9
10
# File 'lib/textus/hooks/loader.rb', line 7

def initialize(events:, rpc:)
  @events = events
  @rpc    = rpc
end

Instance Method Details

#on(event, name, keys: nil) ⇒ Object

Pubsub registration — delegates to EventBus. Also handles RPC event names by delegating to RpcRegistry.



14
15
16
17
18
19
20
# File 'lib/textus/hooks/loader.rb', line 14

def on(event, name, keys: nil, &)
  if Hooks::RpcRegistry::EVENTS.key?(event.to_sym)
    @rpc.register(event, name, &)
  else
    @events.register(event, name, keys: keys, &)
  end
end

#register(event, name) ⇒ Object

Explicit RPC registration.



23
24
25
# File 'lib/textus/hooks/loader.rb', line 23

def register(event, name, &)
  @rpc.register(event, name, &)
end