Sha256: 7d878b0ceb95beef0c2857b92d671c99969de88dfad53d0c8097ef0c1be4793b

Contents?: true

Size: 891 Bytes

Versions: 62

Compression:

Stored size: 891 Bytes

Contents

module Workarea
  module Commentable
    extend ActiveSupport::Concern

    included do
      field :subscribed_user_ids, type: Array, default: []
      has_many :comments,
        class_name: 'Workarea::Comment',
        as: :commentable

      before_save do
        subscribed_user_ids.map!(&:to_s).map!(&:downcase) if subscribed_user_ids.present?
      end
    end

    def add_subscription(list)
      all = subscribed_user_ids + clean_subscription_list(list)
      update_attribute(:subscribed_user_ids, all.uniq)
    end

    def remove_subscription(list)
      update_attribute(
        :subscribed_user_ids,
        subscribed_user_ids - clean_subscription_list(list)
      )
    end

    private

    def clean_subscription_list(list)
      list = list.join(',') if list.respond_to?(:join)
      list.to_s.split(',').map(&:strip).map(&:downcase).reject(&:blank?)
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.27 app/models/workarea/commentable.rb
workarea-core-3.5.4 app/models/workarea/commentable.rb
workarea-core-3.4.26 app/models/workarea/commentable.rb
workarea-core-3.5.3 app/models/workarea/commentable.rb
workarea-core-3.4.25 app/models/workarea/commentable.rb
workarea-core-3.5.2 app/models/workarea/commentable.rb
workarea-core-3.4.24 app/models/workarea/commentable.rb
workarea-core-3.5.1 app/models/workarea/commentable.rb
workarea-core-3.4.23 app/models/workarea/commentable.rb
workarea-core-3.4.22 app/models/workarea/commentable.rb
workarea-core-3.5.0 app/models/workarea/commentable.rb
workarea-core-3.4.21 app/models/workarea/commentable.rb
workarea-core-3.5.0.beta.1 app/models/workarea/commentable.rb
workarea-core-3.4.20 app/models/workarea/commentable.rb
workarea-core-3.4.19 app/models/workarea/commentable.rb
workarea-core-3.4.18 app/models/workarea/commentable.rb
workarea-core-3.4.17 app/models/workarea/commentable.rb
workarea-core-3.4.16 app/models/workarea/commentable.rb
workarea-core-3.4.15 app/models/workarea/commentable.rb
workarea-core-3.4.14 app/models/workarea/commentable.rb