class EvilEvents::Core::Events::Subscriber

@api private @since 0.1.0

Constants

Mixin

@api public @since 0.1.0

Attributes

delegator_resolver[R]

@return [EvilEvents::Shared::DelegatorResolver]

@since 0.1.0

Public Class Methods

new(subscriber, delegator_resolver = default_resolver) click to toggle source

@param subscriber [Object] @param delegator_resolver [EvilEvents::Shared::DelegatorResolver]

@since 0.1.0

# File lib/evil_events/core/events/subscriber.rb, line 16
def initialize(subscriber, delegator_resolver = default_resolver)
  @subscriber = subscriber
  @delegator_resolver = delegator_resolver
end

Public Instance Methods

delegator() click to toggle source

@return [String, Symbol]

@since 0.1.0

# File lib/evil_events/core/events/subscriber.rb, line 39
def delegator
  @delegator ||= delegator_resolver.delegator
end
notify(event) click to toggle source

@param event [EvilEvents::Core::Events::AbstractEvent] @return void

@since 0.1.0

# File lib/evil_events/core/events/subscriber.rb, line 25
def notify(event)
  source_object.public_send(delegator, event)
end
source_object() click to toggle source

@return [Object]

@since 0.1.0

# File lib/evil_events/core/events/subscriber.rb, line 32
def source_object
  @subscriber
end

Private Instance Methods

default_resolver() click to toggle source

@return [EvilEvents::Shared::DelegatorResolver]

@since 0.1.0

# File lib/evil_events/core/events/subscriber.rb, line 48
def default_resolver
  delegation = -> { EvilEvents::Core::Bootstrap[:config].settings.subscriber.default_delegator }
  EvilEvents::Shared::DelegatorResolver.new(delegation)
end