Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ttl_expirable.rb « concerns « models « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: d09ce4873b11a22ecb1952e240f49f9409f4fd31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# frozen_string_literal: true

module TtlExpirable
  extend ActiveSupport::Concern

  included do
    attribute :read_at, default: -> { Time.zone.now }
    validates :status, presence: true

    enum status: { default: 0, pending_destruction: 1, processing: 2, error: 3 }

    scope :read_before, ->(number_of_days) { where("read_at <= ?", Time.zone.now - number_of_days.days) }
    scope :active, -> { where(status: :default) }
  end

  def read!
    self.update(read_at: Time.zone.now)
  end
end