Search engine for Magic: The Gathering cards.
To run frontend like http://mtg.wtf/
$ cd frontend
$ bundle
$ bundle exec rails s
To search card names from command line:
$ ./search-engine/bin/find_cards "query"
To search card names and content from command line:
$ ./search-engine/bin/find_cards -v "query"
To explore card database from Ruby console:
$ ./search-engine/bin/pry_cards
Tests for library and for Rails frontend are separate:
$ (cd search-engine; bundle install)
$ (cd search-engine; bundle exec rspec)
$ (cd frontend; bundle install)
$ (cd frontend; bundle exec rake test)
Whenever new set is released:
- Run
rake rules:update
in case Comprehensive Rules changed - If set is not Vintage-legal, add new set code to FormatVintage exclusions list
- Add new set code and date to legalities in Standard, Modern, and Frontier if applicable
- Add new set code to appropriate block in indexer
- Create new block format if applicable and add it to indexer and Format class
- Update format tests
rake pennydreadful:update
Then import cards:
- Run
rake mtgjson:update
to fetch mtgjson data and index it (this can fail if there are any mtgjson quality issues) - Run
rake test
and fix any tests failing due to data changes
Whenever banned and restricted list is announced:
- Update
BanlistTest
and/orBanlistCommanderTest
- Update
Banlist
data
- for official formats, wizards.com
- Commander: http://mtgcommander.net/rules.php
- MTGO Commander: https://magic.wizards.com/en/game-info/gameplay/rules-and-formats/banned-restricted/magic-online-commander
- Duel Commander: https://www.facebook.com/notes/mtg-duel-commander/duel-commander-current-lists/1698432663740967