Sha256: 6175fbffc046791d22c3aa78e0006a396c9a9978a5edf9afe5a9c62acf57e62e

Contents?: true

Size: 1.04 KB

Versions: 11

Compression:

Stored size: 1.04 KB

Contents

module SocialNetworking
  # A form of contact between two Participants.
  class Nudge < ActiveRecord::Base
    belongs_to :initiator,
               class_name: "Participant",
               foreign_key: "initiator_id"
    belongs_to :recipient, class_name: "Participant"
    has_many :comments, as: "item"

    accepts_nested_attributes_for :recipient

    alias_attribute :participant_id, :initiator_id

    validates :initiator, :recipient, presence: true

    def self.search(recipient_id = nil)
      if recipient_id
        select(:initiator_id)
          .where(recipient_id: recipient_id)
          .where("created_at > ?", 1.day.ago)
          .group(:initiator_id)
      else
        all
      end
    end

    scope :for_today, lambda {
      where(arel_table[:created_at]
                .gteq(Date.today.beginning_of_day)
                .and(arel_table[:created_at].lteq(Date.today.end_of_day)))
    }

    scope :for_week, lambda {
      where(arel_table[:created_at]
             .gteq(Time.current.advance(days: -7).beginning_of_day))
    }
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
social_networking-0.11.8 app/models/social_networking/nudge.rb
social_networking-0.11.7 app/models/social_networking/nudge.rb
social_networking-0.11.6 app/models/social_networking/nudge.rb
social_networking-0.11.5 app/models/social_networking/nudge.rb
social_networking-0.11.4 app/models/social_networking/nudge.rb
social_networking-0.11.3 app/models/social_networking/nudge.rb
social_networking-0.11.2 app/models/social_networking/nudge.rb
social_networking-0.11.1 app/models/social_networking/nudge.rb
social_networking-0.11.0 app/models/social_networking/nudge.rb
social_networking-0.10.0 app/models/social_networking/nudge.rb
social_networking-0.9.3 app/models/social_networking/nudge.rb