Sha256: a9ecf7a4acefd03b5374537bddd0d359b05273c3294d89ec9d3a7ba9da787128

Contents?: true

Size: 1.49 KB

Versions: 27

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true
# encoding: utf-8

class Post
  include Mongoid::Document
  include Mongoid::Attributes::Dynamic

  field :title, type: String
  field :content, type: String
  field :rating, type: Integer
  field :person_title, type: String, default: ->{ person.title if ivar(:person) }

  attr_accessor :before_add_called, :after_add_called, :before_remove_called, :after_remove_called

  belongs_to :person, counter_cache: true
  belongs_to :author, foreign_key: :author_id, class_name: "User"
  belongs_to :post_genre, foreign_key: :genre_id, counter_cache: true
  has_and_belongs_to_many :tags, before_add: :before_add_tag, after_add: :after_add_tag, before_remove: :before_remove_tag, after_remove: :after_remove_tag
  has_many :videos, validate: false
  has_many :roles, validate: false
  has_many :alerts

  belongs_to :posteable, polymorphic: true
  accepts_nested_attributes_for :posteable, autosave: true

  scope :recent, ->{ where(created_at: { "$lt" => Time.now, "$gt" => 30.days.ago }) }
  scope :posting, ->{ where(:content.in => [ "Posting" ]) }
  scope :open, ->{ where(title: "open") }

  validates_format_of :title, without: /\$\$\$/

  def before_add_tag(tag)
    @before_add_called = true
  end

  def after_add_tag(tag)
    @after_add_called = true
  end

  def before_remove_tag(tag)
    @before_remove_called = true
  end

  def after_remove_tag(tag)
    @after_remove_called = true
  end

  class << self
    def old
      where(created_at: { "$lt" => 30.days.ago })
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
mongoid-7.3.5 spec/support/models/post.rb
mongoid-7.3.4 spec/support/models/post.rb
mongoid-7.1.11 spec/app/models/post.rb
mongoid-7.2.6 spec/support/models/post.rb
mongoid-7.3.3 spec/support/models/post.rb
mongoid-7.3.2 spec/support/models/post.rb
mongoid-7.2.5 spec/support/models/post.rb
mongoid-7.1.10 spec/app/models/post.rb
mongoid-7.1.9 spec/app/models/post.rb
mongoid-7.2.4 spec/support/models/post.rb
mongoid-7.3.1 spec/support/models/post.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/mongoid-7.1.7/spec/app/models/post.rb
mongoid-7.3.0 spec/support/models/post.rb
mongoid-7.2.3 spec/support/models/post.rb
mongoid-7.1.8 spec/app/models/post.rb
mongoid-7.2.2 spec/support/models/post.rb
mongoid-7.2.1 spec/support/models/post.rb
mongoid-7.1.7 spec/app/models/post.rb
mongoid-7.2.0 spec/support/models/post.rb
mongoid-7.1.6 spec/app/models/post.rb