Sha256: b42ea3cb098a6fe7286cb3c1c4c7905c7b6e1c6f418c4f0562193554df9099db

Contents?: true

Size: 585 Bytes

Versions: 1

Compression:

Stored size: 585 Bytes

Contents

module Sidejobs
  class Job < ActiveRecord::Base

    STATES = %w(pending processing failing complete)

    STATES.each do |name|
      scope name, -> { where(state: name) }
      define_method "#{name}?" do
        state == name
      end
    end

    validates_presence_of :queue, :data, :state
    validates_presence_of :error, if: :failing?
    validates_presence_of :processed_at, if: :processing?
    validates_inclusion_of :state, within: STATES
    validates_numericality_of :priority, :attempts, only_integer: true

    def self.table_name
      'sidejobs'
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sidejobs-5.1.1 lib/sidejobs/job.rb