Skip to content

jarrellmark/deck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  • 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.

About

Deck of Cards

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors