Sha256: 9effcc2a4ca88791811e472847a3bf65860e9548d38b19d0fb533cd1ced2728f

Contents?: true

Size: 597 Bytes

Versions: 4

Compression:

Stored size: 597 Bytes

Contents

# frozen_string_literal: true

require_relative "./has_cards"

module FiftyTwo
  class Deck
    include HasCards

    class << self
      def standard
        build(FiftyTwo::Rank::ALL.product(FiftyTwo::Suit::ALL))
      end

      private

      def build(items)
        new.tap do |deck|
          items.each do |rank, suit|
            deck << FiftyTwo::Card.new(deck, rank, suit).freeze
          end
        end
      end
    end

    def deal(hands, num_cards = 1)
      num_cards.times.each do |card_idx|
        Array(hands).each { |h| h << draw }
      end

      hands
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fiftytwo-0.0.5 lib/fiftytwo/deck.rb
fiftytwo-0.0.4 lib/fiftytwo/deck.rb
fiftytwo-0.0.3 lib/fiftytwo/deck.rb
fiftytwo-0.0.2 lib/fiftytwo/deck.rb