Sha256: c8539dd432cc95b14aeb8e1c308ba9ab53427ee6863b811185349c8539da96f8

Contents?: true

Size: 1007 Bytes

Versions: 2

Compression:

Stored size: 1007 Bytes

Contents

# frozen_string_literal: true

module Archangel
  ##
  # Entry model
  #
  class Entry < ApplicationRecord
    acts_as_paranoid

    serialize :value, JSON

    acts_as_list scope: :collection_id, top_of_list: 0, add_new_at: :top

    validates :collection_id, presence: true
    validates :available_at, allow_blank: true, date: true
    validates :value, presence: true

    belongs_to :collection

    default_scope { order(position: :asc) }

    ##
    # Check if Entry is available. Available in the past, present and future.
    # Future availability date is also considered available.
    #
    # @return [Boolean] if available
    #
    def available?
      available_at.present?
    end

    ##
    # Return string of availability status.
    #
    # @return [String] available status
    #
    def status
      if available?
        if available_at > Time.now
          "future-available"
        else
          "available"
        end
      else
        "unavailable"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
archangel-0.3.0 app/models/archangel/entry.rb
archangel-0.0.8 app/models/archangel/entry.rb