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
200 |
# File 'lib/groupify/adapter/active_record.rb', line 200 def group_class_name; @group_class_name ||= 'Group'; end |
#group_class_name=(klass) ⇒ Object
201 |
# File 'lib/groupify/adapter/active_record.rb', line 201 def group_class_name=(klass); @group_class_name = klass; end |
#in_all_groups(*groups) ⇒ Object
211 212 213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/groupify/adapter/active_record.rb', line 211 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
207 208 209 |
# File 'lib/groupify/adapter/active_record.rb', line 207 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
203 204 205 |
# File 'lib/groupify/adapter/active_record.rb', line 203 def in_group(group) group.present? ? joins(:group_memberships).where(:group_memberships => {:group_id => group.id}).uniq : none end |
#shares_any_group(other) ⇒ Object
225 226 227 |
# File 'lib/groupify/adapter/active_record.rb', line 225 def shares_any_group(other) in_any_group(other.groups) end |