Module: Groupify::ActiveRecord::GroupMember::ClassMethods

Defined in:
lib/groupify/adapter/active_record.rb

Instance Method Summary collapse

Instance Method Details

#group_class_nameObject



208
# File 'lib/groupify/adapter/active_record.rb', line 208

def group_class_name; @group_class_name ||= 'Group'; end

#group_class_name=(klass) ⇒ Object



209
# File 'lib/groupify/adapter/active_record.rb', line 209

def group_class_name=(klass);  @group_class_name = klass; end

#in_all_groups(*groups) ⇒ Object



219
220
221
222
223
224
225
226
227
228
229
230
231
# File 'lib/groupify/adapter/active_record.rb', line 219

def in_all_groups(*groups)
  if groups.present?
    groups = groups.flatten

    joins(:group_memberships).
    group(:"group_memberships.member_id").
    where(:group_memberships => {:group_id => groups.map(&:id)}).
    having("COUNT(group_memberships.group_id) = #{groups.count}").
    uniq
  else
    none
  end
end

#in_any_group(*groups) ⇒ Object



215
216
217
# File 'lib/groupify/adapter/active_record.rb', line 215

def in_any_group(*groups)
  groups.present? ? joins(:group_memberships).where(:group_memberships => {:group_id => groups.flatten.map(&:id)}).uniq : none
end

#in_group(group) ⇒ Object



211
212
213
# File 'lib/groupify/adapter/active_record.rb', line 211

def in_group(group)
  group.present? ? joins(:group_memberships).where(:group_memberships => {:group_id => group.id}).uniq : none
end

#shares_any_group(other) ⇒ Object



233
234
235
# File 'lib/groupify/adapter/active_record.rb', line 233

def shares_any_group(other)
  in_any_group(other.groups)
end