Module: Groupify::ActiveRecord::GroupMember::ClassMethods

Defined in:
lib/groupify/adapter/active_record.rb

Instance Method Summary collapse

Instance Method Details

#group_class_nameObject



210
# File 'lib/groupify/adapter/active_record.rb', line 210

def group_class_name; @group_class_name ||= 'Group'; end

#group_class_name=(klass) ⇒ Object



211
# File 'lib/groupify/adapter/active_record.rb', line 211

def group_class_name=(klass);  @group_class_name = klass; end

#in_all_groups(*groups) ⇒ Object



221
222
223
224
225
226
227
228
229
230
231
232
233
# File 'lib/groupify/adapter/active_record.rb', line 221

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



217
218
219
# File 'lib/groupify/adapter/active_record.rb', line 217

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



213
214
215
# File 'lib/groupify/adapter/active_record.rb', line 213

def in_group(group)
  group.present? ? joins(:group_memberships).where(:group_memberships => {:group_id => group.id}).uniq : none
end

#shares_any_group(other) ⇒ Object



235
236
237
# File 'lib/groupify/adapter/active_record.rb', line 235

def shares_any_group(other)
  in_any_group(other.groups)
end