module Abstractor::Methods::Models::AbstractorAbstractionGroup::InstanceMethods

Public Instance Methods

has_subtype?(s) click to toggle source
# File lib/abstractor/methods/models/abstractor_abstraction_group.rb, line 35
def has_subtype?(s)
  subtype == s
end
removable?() click to toggle source

Determines if the group can be removed.

@return [Boolean]

# File lib/abstractor/methods/models/abstractor_abstraction_group.rb, line 31
def removable?
  !system_generated
end

Private Instance Methods

must_have_members() click to toggle source
# File lib/abstractor/methods/models/abstractor_abstraction_group.rb, line 48
def must_have_members
  if self.abstractor_abstraction_group_members.empty? || self.abstractor_abstraction_group_members.all? {|abstractor_abstraction_group_member| abstractor_abstraction_group_member.marked_for_destruction? }
    errors.add(:base, 'Must have at least one abstractor_abstraction_group_member')
  end
end
update_abstractor_abstraction_group_members() click to toggle source
# File lib/abstractor/methods/models/abstractor_abstraction_group.rb, line 40
def update_abstractor_abstraction_group_members
  return unless deleted?
  abstractor_abstraction_group_members.each do |gm|
    gm.soft_delete!
    gm.abstractor_abstraction.soft_delete!
  end
end
validate_subject_group_cardinality() click to toggle source
# File lib/abstractor/methods/models/abstractor_abstraction_group.rb, line 54
def validate_subject_group_cardinality
  return if self.abstractor_subject_group.cardinality.blank? || self.persisted?
  errors.add(:base,"Subject group reached maximum number of abstraction groups (#{abstractor_subject_group.cardinality})") if self.about.abstractor_subject_group_complete?(self.abstractor_subject_group_id)
end