Sha256: 4dbc702edc425eb0d1fa26fc0d170eb3765ee184cca7f342405914e5a342a9a9

Contents?: true

Size: 670 Bytes

Versions: 2

Compression:

Stored size: 670 Bytes

Contents

# encoding: utf-8

class Autopublisher
  class << self
    def run!(_options = {})
      if due_pages.any?
        PagesCore::CacheSweeper.once do
          due_pages.each do |p|
            p.update(autopublish: false)
          end
        end
      end
      self.queue!
    end

    def queue!
      return unless queued_pages.any?
      PagesCore::AutopublishJob
        .set(wait_until: queued_pages.first.published_at)
        .perform_later
    end

    protected

    def queued_pages
      Page.where(autopublish: true).order("published_at ASC")
    end

    def due_pages
      queued_pages.where("published_at < ?", (Time.now + 2.minutes))
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pages_core-3.4.3 app/models/autopublisher.rb
pages_core-3.4.2 app/models/autopublisher.rb