Class: WeirdInteractor::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/weird_interactor/base.rb

Overview

Base interactor.

Direct Known Subclasses

BaseAuthenticated

Defined Under Namespace

Classes: UnregisteredEventCalled

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Base

Returns a new instance of Base.

Parameters:

  • params (ActionController::Parameters)


9
10
11
# File 'lib/weird_interactor/base.rb', line 9

def initialize(params)
  @params = params
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



6
7
8
# File 'lib/weird_interactor/base.rb', line 6

def params
  @params
end

Instance Method Details

#on(*event_names, &block) ⇒ Object

Register callback on event.

Parameters:

  • event_names (Symbol, String, Array<Symbol>, Array<String>)
  • block (Proc)


24
25
26
27
28
# 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) ⇒ Object

Execute callback for the given event.

Parameters:

  • event_name (Symbol, String)
  • data (Object)


34
35
36
37
38
39
40
41
# 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_eventsHash

Registered callbacks for events.

Returns:

  • (Hash)


16
17
18
# File 'lib/weird_interactor/base.rb', line 16

def registered_events
  @registered_events ||= {}
end