Sha256: 6dcd3d59a92fb455a37f4404ad71b1792d24dae75b0709237912d013fdd9a25e

Contents?: true

Size: 1.04 KB

Versions: 30

Compression:

Stored size: 1.04 KB

Contents

class Card
  class Director
    class SubdirectorArray < Array
      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

      def initialize parent
        @parent = parent
        super()
      end

      def add card
        card = card.card if card.is_a? Director
        existing(card) || fetch_new(card)
      end

      alias_method :delete_director, :delete

      def delete card
        if card.is_a? Director
          delete_director card
        else
          delete_if { |dir| dir.card == card }
        end
      end

      private

      def existing card
        find { |dir| dir.card == card }
      end

      def fetch_new card
        Director.fetch(card, @parent).tap do |dir|
          update dir, card unless dir.main?
        end
      end

      def update dir, card
        dir.replace_card card if dir.card != card
        dir.parent = @parent
        self << dir
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
card-1.108.1 lib/card/director/subdirector_array.rb
card-1.108.0 lib/card/director/subdirector_array.rb
card-1.107.0 lib/card/director/subdirector_array.rb
card-1.106.0 lib/card/director/subdirector_array.rb
card-1.105.6 lib/card/director/subdirector_array.rb
card-1.105.5 lib/card/director/subdirector_array.rb
card-1.105.4 lib/card/director/subdirector_array.rb
card-1.105.3 lib/card/director/subdirector_array.rb
card-1.105.2.pre1 lib/card/director/subdirector_array.rb
card-1.105.2 lib/card/director/subdirector_array.rb
card-1.105.1 lib/card/director/subdirector_array.rb
card-1.105.0 lib/card/director/subdirector_array.rb
card-1.104.2 lib/card/director/subdirector_array.rb
card-1.104.1 lib/card/director/subdirector_array.rb
card-1.104.0 lib/card/director/subdirector_array.rb
card-1.103.4 lib/card/director/subdirector_array.rb
card-1.103.3 lib/card/director/subdirector_array.rb
card-1.103.2 lib/card/director/subdirector_array.rb
card-1.103.1 lib/card/director/subdirector_array.rb
card-1.103.0 lib/card/director/subdirector_array.rb