Sha256: f8cbd5bcdca9f3d8399fcfd323c16dd649827bafb9ca3ef01949ecaa3e305a4b

Contents?: true

Size: 1.34 KB

Versions: 14

Compression:

Stored size: 1.34 KB

Contents

# require "eitil_wrapper/jobs/new_job_debugger"

require "eitil_wrapper/jobs/single_method_job"

# BEWARE: This is an exact copy of the .new_job method, except for .perform_now instead of .perform_later and the method's name.
# The reason for not using helper methods is to not unnecessarily fill and potentially fuck up the Kernel environment.

Kernel.module_eval do

  # BEWARE: _self is currently not accepted in perform_later jobs due to serialization errors

  # The cases of 'id' and '_self' both handle instances, with the difference 
  # being that 'id' works for objects that have a database record, while '_self'
  # works for non database supported instanes, such as an Exporter instance.

  def new_job_debugger(_method, *args, **kwargs)

    if instance_methods(false).include? _method
      define_method "#{_method}_job_debugger" do |_self = nil, *args, **kwargs|
        
        EitilWrapper::SingleMethodJob.perform_now(
          *args, _class: self.class.to_s, _method: _method.to_s, id: safe_send(:id), _self: self.to_json, **kwargs
        )
      end

    elsif singleton_methods(false).include? _method      
      define_singleton_method "#{_method}_job_debugger" do |*args, **kwargs|
       
        EitilWrapper::SingleMethodJob.perform_now(
          *args, _class: to_s, _method: _method.to_s, **kwargs
        )
      end
    end 
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
eitil-1.1.6 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.1.5 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.1.4 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.1.3 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.1.2 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.1.1 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.1.0 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.0.4 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.0.3 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.0.3.e.1 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.0.2 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.0.1 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.0.1.e.4 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
eitil-1.0.1.e.3 eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb