class Octiron::World::AutoTransmogrifyDelegator

Delegator for the autotransmogiry(FROM).to TO syntax @api private

Public Class Methods

new(from, verify_results = false) click to toggle source
# File lib/octiron/world.rb, line 74
def initialize(from, verify_results = false)
  @from = from
  @verify_results = verify_results
end

Public Instance Methods

to(to, transmogrifier_object = nil, &transmogrifier_proc) click to toggle source
# File lib/octiron/world.rb, line 79
def to(to, transmogrifier_object = nil, &transmogrifier_proc)
  # First register the transmogrifier
  super

  # Then create an event handler that chains the transmogrify step with a
  # publish step.
  ::Octiron::World.event_bus.subscribe(@from) do |event|
    # By default, we don't want to raise errors if the transmogrifier
    # returns nil. Still, raising should be activated optionally.
    new_ev = ::Octiron::World.transmogrifier_registry.transmogrify(
        event, to,
        @verify_results
    )
    ::Octiron::World.event_bus.publish(new_ev)
  end
end