Module: Groupify::ActiveRecord::NamedGroupMember::ClassMethods

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

Instance Method Summary collapse

Instance Method Details

#in_all_named_groups(*named_groups) ⇒ Object



298
299
300
301
302
303
304
305
306
307
308
309
310
# File 'lib/groupify/adapter/active_record.rb', line 298

def in_all_named_groups(*named_groups)
  if named_groups.present?
    named_groups = named_groups.flatten.map(&:to_s)

    joins(:group_memberships).
    group(:"group_memberships.member_id").
    where(:group_memberships => {:group_name => named_groups}).
    having("COUNT(group_memberships.group_name) = #{named_groups.count}").
    uniq
  else
    none
  end
end

#in_any_named_group(*named_groups) ⇒ Object



294
295
296
# File 'lib/groupify/adapter/active_record.rb', line 294

def in_any_named_group(*named_groups)
  named_groups.present? ? joins(:group_memberships).where(:group_memberships => {:group_name => named_groups.flatten}).uniq : none
end

#in_named_group(named_group) ⇒ Object



290
291
292
# File 'lib/groupify/adapter/active_record.rb', line 290

def in_named_group(named_group)
  named_group.present? ? joins(:group_memberships).where(:group_memberships => {:group_name => named_group}).uniq  : none
end

#shares_any_named_group(other) ⇒ Object



312
313
314
# File 'lib/groupify/adapter/active_record.rb', line 312

def shares_any_named_group(other)
  in_any_named_group(other.named_groups.to_a)
end