Sha256: deb36853bd48f07f21da6ca9608209677e5e999eee164d10c57d46f97de4e341

Contents?: true

Size: 1.84 KB

Versions: 19

Compression:

Stored size: 1.84 KB

Contents

# {Group Groups} are the other kind of social entities supported in SocialStream::Base
#
# As with {User}, almost all the interaction with other classes in Social Stream is done
# through {Actor}. The glue between {Group} and {Actor} is in {SocialStream::Models::Subject}
#
class Group < ActiveRecord::Base
  include SocialStream::Models::Subject

  attr_accessor :_participants

  delegate :description, :description=, :to => :profile!

  after_create :create_ties

  def profile!
    actor!.profile || actor!.build_profile
  end
 
  def recent_groups
    contact_subjects(:type => :group, :direction => :sent) do |q|
      q.select("contacts.created_at").
        merge(Contact.recent)
    end
  end

  private

  # Creates ties from founder to the group, based on _relation_ids,
  # and ties from the group to founder and participants.
  def create_ties
    create_ties_from_founder
    create_ties_to_participants
  end

  # Creates the ties from the founder to the group
  def create_ties_from_founder
=begin
    # FIXME: need to define a proper relation for this case. Maybe a system defined relation
    author.sent_contacts.create! :receiver_id  => actor_id,
                                 :relation_ids => _relation_ids

    if represented_author?
      user_author.sent_contacts.create! :receiver_id  => actor_id,
                                        :relation_ids => _relation_ids
    end
=end
  end
  
  # Creates the ties from the group to the participants
  def create_ties_to_participants
    participant_ids = ([ author_id, user_author_id ] | Array.wrap(@_participants)).uniq

    participant_ids.each do |a|
      sent_contacts.create! :receiver_id  => a,
                            :user_author  => user_author,
                            :relation_ids => Array(relation_customs.sort.first.id)
    end
  end
end

ActiveSupport.run_load_hooks(:group, Group)

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
social_stream-0.28.4 base/app/models/group.rb
social_stream-base-0.22.4 app/models/group.rb
social_stream-0.28.1 base/app/models/group.rb
social_stream-base-0.22.1 app/models/group.rb
social_stream-0.28.0 base/app/models/group.rb
social_stream-base-0.22.0 app/models/group.rb
social_stream-0.27.3 base/app/models/group.rb
social_stream-0.27.2 base/app/models/group.rb
social_stream-base-0.21.2 app/models/group.rb
social_stream-0.27.1 base/app/models/group.rb
social_stream-base-0.21.1 app/models/group.rb
social_stream-0.27.0 base/app/models/group.rb
social_stream-base-0.21.0 app/models/group.rb
social_stream-0.26.2 base/app/models/group.rb
social_stream-base-0.20.2 app/models/group.rb
social_stream-0.26.1 base/app/models/group.rb
social_stream-base-0.20.1 app/models/group.rb
social_stream-0.26.0 base/app/models/group.rb
social_stream-base-0.20.0 app/models/group.rb