-
Model
-
Schema
-
deck_of_cards
-
id: integer
-
-
card_in_decks
-
id: integer
-
deck_of_card_id: integer
-
card_id: integer
-
order: integer
-
-
cards
-
id: integer
-
number: integer
-
display_name: string
-
suit: string
-
-
-
Overview
-
A Card represents a card. For example, an Ace of Spades.
-
A DeckOfCards has a collection of Cards through CardInDecks.
-
CardInDecks.order keeps the collection in order
-
-
-
More Details
-
Order
-
card_in_deck.order is maintained using deck_of_cards.reorder
-
For example
-
Let’s say there’s a deck collection like this, where the numbers represent deck_of_card.order: [1, 2, 3, 4]
-
Then, the 3rd card is removed.
-
The deck collection now looks like this: [1, 2, 4]
-
deck_of_cards.reorder will go through the collection, and make it look like the following by modifying the card_in_deck.order values: [1, 2, 3]
-
-
deck_of_cards.reorder is called every time a deck_of_card is created, updated, or deleted using callbacks in card_in_deck.
-
There is also some logic to prevent deck_of_cards.reorder from being called. For example, during a deck_of_card.shuffle operation.
-
-
-
Shuffle
-
deck_of_cards.shuffle shuffles the deck by randomly assigning card_in_deck.order values to all the card_in_decks beloning to the deck_of_cards.
-
-
-
-
View and Controller
-
These are based on scaffolding code generated by Ruby on Rails. They are slightly modified to provide the required functionality.
-
jarrellmark/deck
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|