Build Status Coverage Status

Rubycards is a library to emulate playing cards (cards, hands, decks). As an added bonus, you can display the cards as tiny pictures. I'm mainly doing this as an exercise to learn better Ruby organization, as well as documentation and testing. More importantly it's just fun.

See the extended documentation:



Add this line to your application's Gemfile:

gem 'rubycards'

And then execute:

$ bundle

Or install it yourself as:

$ gem install rubycards


Here's a trivial example of declaring a new deck, shuffling, and drawing 5 cards into a hand:

require 'rubycards'
include RubyCards

hand =
deck =


hand.draw(deck, 5)

puts hand

Which produces the image at the top of this README.

Here's a second example showing 2 decks, with the 2 and Jacks removed, shuffling, and drawing 10 cards into a hand:

require 'rubycards'
include RubyCards

hand =
deck = 2, exclude_rank: [2, 'Jack'])


hand.draw(deck, 10)

puts hand


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request