Ken,
  A massive but successful debugging session on a very subtle error in OldMaidView.js.  It took about three hours to fix the problem this morning.  It was one of those times where I was looking at the source of the problem but did not recognize what was going on immediately.  Some of my Spinach tests were failing because it appeared Capybara kept selecting the incorrect card "page.find(:path, '///*[contains(@class,"opponentHand")]/ul/li[2]/img').trigger('click')" in this case it was supposed to select a four of clubs (the second card in the list) but it seemed to be selecting the first card in the list, a two of hearts, because pair generation was taking place when the test was designed to prove pair generation would not take place.  Debugging first with a binding.pry showed the "xpath" statement was correct, so the correct card seemed to be selected.  Turning on the selenium_chrome driver showed the four of clubs was the card selected but pair generation was still taking place.  I then started debugging the actual javascript because I could set breakpoints in the Game, Hand, and Card classes.  It turned out my Card "equals" method was returning the incorrect results time and time again.  I was totally befuddled by this because my Card class tests all passed.  I finally paid close attention to the two cards being compared.  Guess what?  The chosen card from the view had as its rank a number, like 4 or 6, but the card rank to compare with in the hand was represented by a string (which is the correct representation).  John Calvin Young had showed me how to put properties on list items in html 5, so the selected cards from the opponents hand had "data-rank" and "data-suit" as additional properties.  I took these properties to make a card object -> 
var selectedCard = $(event.target).data(); 
var card = new Card(selectedCard.rank, selectedCard.suit);  
selectedCard.rank always returned a number if the card was not a face card and this messed up my "equals" Card instance method.  selectedCard.rank.toString(); fixed the problem.