summaryrefslogtreecommitdiff
path: root/bindings/ruby/test_base.rb
diff options
context:
space:
mode:
authorMartin DeMello <mdemello@google.com>2019-02-07 00:52:02 -0800
committerJohn Fultz <jfultz@wolfram.com>2019-02-07 16:20:28 -0600
commit9e93419a236f34cfb016461a7e37a1280177e05a (patch)
tree2196679c562381de0ae9ccc44835733d01c0dbf9 /bindings/ruby/test_base.rb
parentd387d2e719f736d28db797d47ffc4fca29a202fa (diff)
Add ruby bindings
Diffstat (limited to 'bindings/ruby/test_base.rb')
-rw-r--r--bindings/ruby/test_base.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/bindings/ruby/test_base.rb b/bindings/ruby/test_base.rb
new file mode 100644
index 0000000..6fa7f05
--- /dev/null
+++ b/bindings/ruby/test_base.rb
@@ -0,0 +1,35 @@
+def initialize_dm(lexicon: 'twl06', alphabet: 'english', datadir: '../../data')
+ # Set up the data manager
+ dm = Quackle::DataManager.new
+ dm.setComputerPlayers(Quackle::ComputerPlayerCollection.fullCollection)
+ dm.setBackupLexicon(lexicon)
+ dm.setAppDataDirectory(datadir)
+
+ # Set up the alphabet
+ abc = Quackle::AlphabetParameters.findAlphabetFile(alphabet)
+ abc2 = Quackle::Util.stdStringToQString(abc) #convert to qstring
+ fa = Quackle::FlexibleAlphabetParameters.new
+
+ fail unless fa.load(abc2)
+ dm.setAlphabetParameters(fa)
+
+ # Set up the board
+ board = Quackle::BoardParameters.new
+ dm.setBoardParameters(board)
+
+ # Find the lexicon
+ dawg = Quackle::LexiconParameters.findDictionaryFile(lexicon + '.dawg')
+ gaddag = Quackle::LexiconParameters.findDictionaryFile(lexicon + '.gaddag')
+ dm.lexiconParameters.loadDawg(dawg)
+ dm.lexiconParameters.loadGaddag(gaddag)
+
+ dm.strategyParameters.init(lexicon)
+ return dm
+end
+
+def get_computer_player(dm, name: 'Speedy Player')
+ player, found = dm.computerPlayers.playerForName(name)
+ fail unless found
+ player.computerPlayer
+end
+