class Card::Director::SubdirectorArray

Public Class Methods

initialize_with_subcards(parent) click to toggle source
# File lib/card/director/subdirector_array.rb, line 4
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
new(parent) click to toggle source
Calls superclass method
# File lib/card/director/subdirector_array.rb, line 12
def initialize parent
  @parent = parent
  super()
end

Public Instance Methods

add(card) click to toggle source
# File lib/card/director/subdirector_array.rb, line 17
def add card
  card = card.card if card.is_a? Director
  existing(card) || fetch_new(card)
end
delete(card) click to toggle source
# File lib/card/director/subdirector_array.rb, line 24
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
delete_director(card)
Alias for: delete

Private Instance Methods

existing(card) click to toggle source
# File lib/card/director/subdirector_array.rb, line 34
def existing card
  find { |dir| dir.card == card }
end
fetch_new(card) click to toggle source
# File lib/card/director/subdirector_array.rb, line 38
def fetch_new card
  Director.fetch(card, @parent).tap do |dir|
    update dir, card unless dir.main?
  end
end
update(dir, card) click to toggle source
# File lib/card/director/subdirector_array.rb, line 44
def update dir, card
  dir.replace_card card if dir.card != card
  dir.parent = @parent
  self << dir
end