Class: Shoes::Linkable
- Inherits:
-
Object
- Object
- Shoes::Linkable
- 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.
Direct Known Subclasses
Scarpe::Webview::ContainedService, Scarpe::WebviewWidget, Widget
Instance Attribute Summary collapse
-
#linkable_id ⇒ Object
readonly
Returns the value of attribute linkable_id.
Instance Method Summary collapse
- #bind_shoes_event(event_name:, target: nil, &handler) ⇒ Object
-
#initialize(linkable_id: object_id) ⇒ Linkable
constructor
A new instance of Linkable.
- #send_self_event(*args, event_name:, **kwargs) ⇒ Object
- #send_shoes_event(*args, event_name:, target: nil, **kwargs) ⇒ Object
- #unsub_shoes_event(unsub_id) ⇒ Object
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_id ⇒ Object (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 |