Sha256: d6854bee0d709ba58c25c100264f3e8687577d1061a1b27a1a8a081e2b37a7fd

Contents?: true

Size: 589 Bytes

Versions: 1

Compression:

Stored size: 589 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, hand_size: 1)
      hand_size.times.each do |card_idx|
        hands.each { |h| h << draw }
      end

      hands
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fiftytwo-0.0.1 lib/fiftytwo/deck.rb