class Card::Director::SubdirectorArray
extends array with special methods for handling lists of card subdirectors
Public Class Methods
Source
# File lib/card/director/subdirector_array.rb, line 5 def self.initialize_with_subcards parent dir_array = new(parent) parent.card.subcards.each_card do |subcard| dir_array.add subcard end dir_array end
Source
# File lib/card/director/subdirector_array.rb, line 13 def initialize parent @parent = parent super() end
Calls superclass method
Public Instance Methods
Source
# File lib/card/director/subdirector_array.rb, line 18 def add card card = card.card if card.is_a? Director existing(card) || fetch_new(card) end
Source
# File lib/card/director/subdirector_array.rb, line 25 def delete card if card.is_a? Director delete_director card else delete_if { |dir| dir.card == card } end end
Also aliased as: delete_director
Private Instance Methods
Source
# File lib/card/director/subdirector_array.rb, line 35 def existing card find { |dir| dir.card == card } end
Source
# File lib/card/director/subdirector_array.rb, line 39 def fetch_new card Director.fetch(card, @parent).tap do |dir| update dir, card unless dir.main? end end
Source
# File lib/card/director/subdirector_array.rb, line 45 def update dir, card dir.replace_card card if dir.card != card dir.parent = @parent self << dir end