module RocketJob::Plugins::Job::Model::ClassMethods

Public Instance Methods

collective_name() click to toggle source

Returns [String] the collective name for this job class

Example:

job = DataStudyJob.new
job.collective_name
# => "data_studies"
# File lib/rocket_job/plugins/job/model.rb, line 136
def collective_name
  @collective_name ||= name.sub(/Job$/, "").pluralize.underscore
end
collective_name=(collective_name) click to toggle source

Allow the collective name for this job class to be overridden

# File lib/rocket_job/plugins/job/model.rb, line 141
def collective_name=(collective_name)
  @collective_name = collective_name
end
field(name, options) click to toggle source

Defines all the fields that are accessible on the Document For each field that is defined, a getter and setter will be added as an instance method to the Document.

@example Define a field.

field :score, :type => Integer, :default => 0

@param [ Symbol ] name The name of the field. @param [ Hash ] options The options to pass to the field.

@option options [ Class ] :type The type of the field. @option options [ String ] :label The label for the field. @option options [ Object, Proc ] :default The field’s default @option options [ Boolean ] :class_attribute Keep the fields default in a class_attribute @option options [ Boolean ] :user_editable Field can be edited by end users in RJMC

@return [ Field ] The generated field

Calls superclass method
# File lib/rocket_job/plugins/job/model.rb, line 173
def field(name, options)
  if (options.delete(:user_editable) == true) && !user_editable_fields.include?(name.to_sym)
    self.user_editable_fields += [name.to_sym]
  end

  if options.delete(:class_attribute) == true
    class_attribute(name, instance_accessor: false)
    public_send("#{name}=", options[:default]) if options.key?(:default)
    options[:default] = -> { self.class.public_send(name) }
  end

  if (options.delete(:copy_on_restart) == true) && !rocket_job_restart_attributes.include?(name.to_sym)
    self.rocket_job_restart_attributes += [name.to_sym]
  end

  super(name, options)
end
from_properties(properties) click to toggle source

Builds this job instance from the supplied properties hash. Overridden by batch to support child objects.

# File lib/rocket_job/plugins/job/model.rb, line 193
def from_properties(properties)
  new(properties)
end
human_name() click to toggle source

Returns [String] the human readable name for this job class

Example:

job = DataStudyJob.new
job.human_name
# => "Data Study"
# File lib/rocket_job/plugins/job/model.rb, line 121
def human_name
  @human_name ||= name.sub(/Job$/, "").titleize
end
human_name=(human_name) click to toggle source

Allow the human readable job name for this job class to be overridden

# File lib/rocket_job/plugins/job/model.rb, line 126
def human_name=(human_name)
  @human_name = human_name
end
queued_now() click to toggle source

Scope for queued jobs that can run now I.e. Queued jobs excluding scheduled jobs

# File lib/rocket_job/plugins/job/model.rb, line 152
def queued_now
  queued.and(RocketJob::Job.where(run_at: nil).or(:run_at.lte => Time.now))
end
scheduled() click to toggle source

Scope for jobs scheduled to run in the future

# File lib/rocket_job/plugins/job/model.rb, line 146
def scheduled
  queued.where(:run_at.gt => Time.now)
end
underscore_name() click to toggle source

Returns [String] the singular name for this job class

Example:

job = DataStudyJob.new
job.underscore_name
# => "data_study"
# File lib/rocket_job/plugins/job/model.rb, line 106
def underscore_name
  @underscore_name ||= name.sub(/Job$/, "").underscore
end
underscore_name=(underscore_name) click to toggle source

Allow the collective name for this job class to be overridden

# File lib/rocket_job/plugins/job/model.rb, line 111
def underscore_name=(underscore_name)
  @underscore_name = underscore_name
end