module Card::Set::Event::DelayedEvent
Constants
- DELAY_STAGES
Public Instance Methods
Source
# File lib/card/set/event/delayed_event.rb, line 21 def priority @priority || 10 end
Private Instance Methods
Source
# File lib/card/set/event/delayed_event.rb, line 36 def define_delayed_event_method define_event_delaying_method define_standard_event_method delaying_method_name end
Source
# File lib/card/set/event/delayed_event.rb, line 47 def define_event_delaying_method @set_module.class_exec(self) do |event| define_method(event.delaying_method_name, proc do IntegrateWithDelayJob .set(set_delayed_job_args(event)) .perform_later(*perform_delayed_job_args(event)) end) end end
creates a method that creates an ActiveJob that calls the event method. The scheduled job gets the card object as argument and all serializable attributes of the card. (when the job is executed ActiveJob fetches the card from the database so all attributes get lost) It uses the event as queue name
Source
# File lib/card/set/event/delayed_event.rb, line 27 def process_delayed_job_opts opts @priority = opts.delete :priority end
Source
# File lib/card/set/event/delayed_event.rb, line 31 def with_delay? opts opts.delete(:delay) || DELAY_STAGES.intersect?([opts[:after], opts[:before]].to_set) end