module Card::Set::Event::Callbacks

Public Instance Methods

set_event_callback(object_method, kind) click to toggle source
# File lib/card/set/event/callbacks.rb, line 13
def set_event_callback object_method, kind
  valid_event_callback kind, object_method do
    Card.class_exec(self) do |event|
      set_callback object_method, kind, event.name,
                   prepend: true, if: proc { |c| c.event_applies?(event) }
    end
  end
end
set_event_callbacks() click to toggle source
# File lib/card/set/event/callbacks.rb, line 5
def set_event_callbacks
  %i[before after around].each do |kind|
    next unless (object_method = @opts.delete kind)

    set_event_callback object_method, kind
  end
end
valid_event_callback(kind, method) { || ... } click to toggle source
# File lib/card/set/event/callbacks.rb, line 22
def valid_event_callback kind, method
  yield
rescue NoMethodError
  raise "invalid event callback: `#{kind}: #{method}`"
end