Sha256: b37b4acdaccda6ab22a6c04035d3ac19a57ae5ee0368dec6cd4fe6507fa403fa

Contents?: true

Size: 1.32 KB

Versions: 24

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

module GoodJob
  # Base ActiveRecord class that all GoodJob models inherit from.
  # Parent class can be configured with +GoodJob.active_record_parent_class+.
  # @!parse
  #   class BaseRecord < ActiveRecord::Base; end
  class BaseRecord < ActiveRecordParentClass
    self.abstract_class = true

    def self.migration_pending_warning!
      GoodJob.deprecator.warn(<<~DEPRECATION)
        GoodJob has pending database migrations. To create the migration files, run:
            rails generate good_job:update
        To apply the migration files, run:
            rails db:migrate
      DEPRECATION
      nil
    end

    # Checks for whether the schema is up to date.
    # Can be overriden by child class.
    # @return [Boolean]
    def self.migrated?
      return true if table_exists?

      migration_pending_warning!
      false
    end

    # Runs the block with self.logger silenced.
    # If self.logger is nil, simply runs the block.
    def self.with_logger_silenced(silent: true, &block)
      # Assign to a local variable, just in case it's modified in another thread concurrently
      logger = self.logger
      if silent && logger.respond_to?(:silence)
        logger.silence(&block)
      else
        yield
      end
    end

    ActiveSupport.run_load_hooks(:good_job_base_record, self)
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
good_job-3.27.4 app/models/good_job/base_record.rb
good_job-3.27.3 app/models/good_job/base_record.rb
good_job-3.27.2 app/models/good_job/base_record.rb
good_job-3.27.1 app/models/good_job/base_record.rb
good_job-3.27.0 app/models/good_job/base_record.rb
good_job-3.26.2 app/models/good_job/base_record.rb
good_job-3.26.1 app/models/good_job/base_record.rb
good_job-3.26.0 app/models/good_job/base_record.rb
good_job-3.25.0 app/models/good_job/base_record.rb
good_job-3.24.0 app/models/good_job/base_record.rb
good_job-3.23.0 app/models/good_job/base_record.rb
good_job-3.22.0 app/models/good_job/base_record.rb
good_job-3.21.5 app/models/good_job/base_record.rb
good_job-3.21.4 app/models/good_job/base_record.rb
good_job-3.21.3 app/models/good_job/base_record.rb
good_job-3.21.2 app/models/good_job/base_record.rb
good_job-3.21.1 app/models/good_job/base_record.rb
good_job-3.21.0 app/models/good_job/base_record.rb
good_job-3.20.0 app/models/good_job/base_record.rb
good_job-3.19.4 app/models/good_job/base_record.rb