Module: Groupify::ActiveRecord::NamedGroupMember::ClassMethods
- Defined in:
- lib/groupify/adapter/active_record/named_group_member.rb
Instance Method Summary collapse
- #as(membership_type) ⇒ Object
- #in_all_named_groups(*named_groups) ⇒ Object
- #in_any_named_group(*named_groups) ⇒ Object
- #in_named_group(named_group) ⇒ Object
- #in_only_named_groups(*named_groups) ⇒ Object
- #shares_any_named_group(other) ⇒ Object
Instance Method Details
#as(membership_type) ⇒ Object
61 62 63 |
# File 'lib/groupify/adapter/active_record/named_group_member.rb', line 61 def as(membership_type) joins(:group_memberships).where(group_memberships: {membership_type: membership_type}) end |
#in_all_named_groups(*named_groups) ⇒ Object
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/groupify/adapter/active_record/named_group_member.rb', line 78 def in_all_named_groups(*named_groups) named_groups.flatten! return none unless named_groups.present? joins(:group_memberships). group("#{quoted_table_name}.#{connection.quote_column_name('id')}"). where(:group_memberships => {:group_name => named_groups}). having("COUNT(DISTINCT group_memberships.group_name) = #{named_groups.count}"). uniq end |
#in_any_named_group(*named_groups) ⇒ Object
71 72 73 74 75 76 |
# File 'lib/groupify/adapter/active_record/named_group_member.rb', line 71 def in_any_named_group(*named_groups) named_groups.flatten! return none unless named_groups.present? joins(:group_memberships).where(group_memberships: {group_name: named_groups.flatten}).uniq end |
#in_named_group(named_group) ⇒ Object
65 66 67 68 69 |
# File 'lib/groupify/adapter/active_record/named_group_member.rb', line 65 def in_named_group(named_group) return none unless named_group.present? joins(:group_memberships).where(group_memberships: {group_name: named_group}).uniq end |
#in_only_named_groups(*named_groups) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/groupify/adapter/active_record/named_group_member.rb', line 89 def in_only_named_groups(*named_groups) named_groups.flatten! return none unless named_groups.present? joins(:group_memberships). group("#{quoted_table_name}.#{connection.quote_column_name('id')}"). having("COUNT(DISTINCT group_memberships.group_name) = #{named_groups.count}"). uniq end |
#shares_any_named_group(other) ⇒ Object
99 100 101 |
# File 'lib/groupify/adapter/active_record/named_group_member.rb', line 99 def shares_any_named_group(other) in_any_named_group(other.named_groups.to_a) end |