module Groupify::ActiveRecord::GroupMember::ClassMethods
Public Instance Methods
as(membership_type)
click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 99 def as(membership_type) joins(:group_memberships_as_member).where(group_memberships: { membership_type: membership_type }) end
in_all_groups(*groups)
click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 116 def in_all_groups(*groups) groups = groups.flatten return none unless groups.present? joins(:group_memberships_as_member). group("#{quoted_table_name}.#{connection.quote_column_name('id')}"). where(group_memberships: {group_id: groups.map(&:id)}). having("COUNT(#{reflect_on_association(:group_memberships_as_member).klass.quoted_table_name}.#{connection.quote_column_name('group_id')}) = ?", groups.count). distinct end
in_any_group(*groups)
click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 109 def in_any_group(*groups) groups = groups.flatten return none unless groups.present? joins(:group_memberships_as_member).where(group_memberships: { group_id: groups.map(&:id) }).distinct end
in_group(group)
click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 103 def in_group(group) return none unless group.present? joins(:group_memberships_as_member).where(group_memberships: { group_id: group.id }).distinct end
in_only_groups(*groups)
click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 127 def in_only_groups(*groups) groups = groups.flatten return none unless groups.present? joins(:group_memberships_as_member). group("#{quoted_table_name}.#{connection.quote_column_name('id')}"). having("COUNT(DISTINCT #{reflect_on_association(:group_memberships_as_member).klass.quoted_table_name}.#{connection.quote_column_name('group_id')}) = ?", groups.count). distinct end