module Card::Subcards::Remove

Methods for removing/clearing subcards

Public Instance Methods

clear() click to toggle source
# File lib/card/subcards/remove.rb, line 19
def clear
  @keys.each { |key| clear_key key }
  @keys = ::Set.new
end
clear_key(key) click to toggle source
# File lib/card/subcards/remove.rb, line 24
def clear_key key
  if (subcard = fetch_subcard key)
    Director.deep_delete subcard.director
    subcard.current_action&.delete
  end
  Card.cache.temp.delete key
  subcard
end
deep_clear(cleared=::Set.new) click to toggle source
# File lib/card/subcards/remove.rb, line 33
def deep_clear cleared=::Set.new
  each_card do |card|
    next if cleared.include? card.id

    cleared << card.id
    card.subcards.deep_clear cleared
  end
  clear
end
remove(name_or_card) click to toggle source
# File lib/card/subcards/remove.rb, line 11
def remove name_or_card
  key = subcard_key name_or_card
  return unless @keys.include? key

  @keys.delete key
  clear_key key
end
remove_child(cardish) click to toggle source
# File lib/card/subcards/remove.rb, line 5
def remove_child cardish
  child = cardish.is_a?(Card) ? cardish : child(cardish)
  remove child
end
Also aliased as: remove_field
remove_field(cardish)
Alias for: remove_child