class WeirdInteractor::Base

Base interactor.

Attributes

params[R]

Public Class Methods

new(params) click to toggle source

@param params [ActionController::Parameters]

# File lib/weird_interactor/base.rb, line 9
def initialize(params)
  @params = params
end

Public Instance Methods

on(*event_names, &block) click to toggle source

Register callback on event.

@param event_names [Symbol, String, Array<Symbol>, Array<String>] @param block [Proc]

# File lib/weird_interactor/base.rb, line 24
def on(*event_names, &block)
  Array(event_names).each do |event_name|
    registered_events[event_name] = block
  end
end
publish(event_name, data) click to toggle source

Execute callback for the given event.

@param event_name [Symbol, String] @param data [Object]

# File lib/weird_interactor/base.rb, line 34
def publish(event_name, data)
  handler = registered_events[event_name]
  unless handler.nil?
    handler.call(data)
  else
    raise UnregisteredEventCalled, event_name
  end
end
registered_events() click to toggle source

Registered callbacks for events.

@return [Hash]

# File lib/weird_interactor/base.rb, line 16
def registered_events
  @registered_events ||= {}
end