Class: Shoes::Linkable

Inherits:
Object
  • Object
show all
Defined in:
lacci/lib/shoes/display_service.rb

Overview

This is for objects that can be referred to via events, using their IDs. There are also convenience functions for binding and sending events.

Linkable objects may be event targets. Technically anything, linkable or not, can be an event subscriber, but linkables get easy convenience functions for subscription.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(linkable_id: object_id) ⇒ Linkable

Returns a new instance of Linkable.



164
165
166
# File 'lacci/lib/shoes/display_service.rb', line 164

def initialize(linkable_id: object_id)
  @linkable_id = linkable_id
end

Instance Attribute Details

#linkable_idObject (readonly)

Returns the value of attribute linkable_id.



162
163
164
# File 'lacci/lib/shoes/display_service.rb', line 162

def linkable_id
  @linkable_id
end

Instance Method Details

#bind_shoes_event(event_name:, target: nil, &handler) ⇒ Object



176
177
178
# File 'lacci/lib/shoes/display_service.rb', line 176

def bind_shoes_event(event_name:, target: nil, &handler)
  DisplayService.subscribe_to_event(event_name, target, &handler)
end

#send_self_event(*args, event_name:, **kwargs) ⇒ Object



168
169
170
# File 'lacci/lib/shoes/display_service.rb', line 168

def send_self_event(*args, event_name:, **kwargs)
  DisplayService.dispatch_event(event_name, self.linkable_id, *args, **kwargs)
end

#send_shoes_event(*args, event_name:, target: nil, **kwargs) ⇒ Object



172
173
174
# File 'lacci/lib/shoes/display_service.rb', line 172

def send_shoes_event(*args, event_name:, target: nil, **kwargs)
  DisplayService.dispatch_event(event_name, target, *args, **kwargs)
end

#unsub_shoes_event(unsub_id) ⇒ Object



180
181
182
# File 'lacci/lib/shoes/display_service.rb', line 180

def unsub_shoes_event(unsub_id)
  DisplayService.unsub_from_events(unsub_id)
end