module Groupify::ActiveRecord::NamedGroupMember::ClassMethods
Public Instance Methods
as(membership_type)
click to toggle source
# File lib/groupify/adapter/active_record/named_group_member.rb, line 65 def as(membership_type) joins(:group_memberships_as_member).where(group_memberships: {membership_type: membership_type}) end
in_all_named_groups(*named_groups)
click to toggle source
# File lib/groupify/adapter/active_record/named_group_member.rb, line 82 def in_all_named_groups(*named_groups) named_groups.flatten! return none unless named_groups.present? joins(:group_memberships_as_member). group("#{quoted_table_name}.#{connection.quote_column_name('id')}"). where(:group_memberships => {:group_name => named_groups}). having("COUNT(DISTINCT #{reflect_on_association(:group_memberships_as_member).klass.quoted_table_name}.#{connection.quote_column_name('group_name')}) = ?", named_groups.count). distinct end
in_any_named_group(*named_groups)
click to toggle source
# File lib/groupify/adapter/active_record/named_group_member.rb, line 75 def in_any_named_group(*named_groups) named_groups.flatten! return none unless named_groups.present? joins(:group_memberships_as_member).where(group_memberships: {group_name: named_groups.flatten}).distinct end
in_named_group(named_group)
click to toggle source
# File lib/groupify/adapter/active_record/named_group_member.rb, line 69 def in_named_group(named_group) return none unless named_group.present? joins(:group_memberships_as_member).where(group_memberships: {group_name: named_group}).distinct end
in_only_named_groups(*named_groups)
click to toggle source
# File lib/groupify/adapter/active_record/named_group_member.rb, line 93 def in_only_named_groups(*named_groups) named_groups.flatten! return none unless named_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_name')}) = ?", named_groups.count). distinct end