module StimulusReflex::Callbacks

Public Instance Methods

add_callback(kind, *args, &block) click to toggle source
# File lib/stimulus_reflex/callbacks.rb, line 27
def add_callback(kind, *args, &block)
  options = args.extract_options!
  options.assert_valid_keys :if, :unless, :only, :except
  set_callback(*[:process, kind, args, normalize_callback_options!(options)].flatten, &block)
end
after_reflex(*args, &block) click to toggle source
# File lib/stimulus_reflex/callbacks.rb, line 17
def after_reflex(*args, &block)
  add_callback(:after, *args, &block)
end
around_reflex(*args, &block) click to toggle source
# File lib/stimulus_reflex/callbacks.rb, line 21
def around_reflex(*args, &block)
  add_callback(:around, *args, &block)
end
before_reflex(*args, &block) click to toggle source
# File lib/stimulus_reflex/callbacks.rb, line 13
def before_reflex(*args, &block)
  add_callback(:before, *args, &block)
end
normalize_callback_option!(options, from, to) click to toggle source
# File lib/stimulus_reflex/callbacks.rb, line 39
def normalize_callback_option!(options, from, to)
  if (from = options.delete(from))
    from_set = Array(from).map(&:to_s).to_set
    from = proc { |reflex| from_set.include? reflex.method_name }
    options[to] = Array(options[to]).unshift(from)
  end
end
normalize_callback_options!(options) click to toggle source
# File lib/stimulus_reflex/callbacks.rb, line 33
def normalize_callback_options!(options)
  normalize_callback_option! options, :only, :if
  normalize_callback_option! options, :except, :unless
  options
end