Module: Groupify::ActiveRecord::GroupMember::ClassMethods
- Defined in:
- lib/groupify/adapter/active_record.rb
Instance Method Summary collapse
- #group_class_name ⇒ Object
- #group_class_name=(klass) ⇒ Object
- #in_all_groups(*groups) ⇒ Object
- #in_any_group(*groups) ⇒ Object
- #in_group(group) ⇒ Object
- #shares_any_group(other) ⇒ Object
Instance Method Details
#group_class_name ⇒ Object
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 |