title: Designing a poker parser in Ruby
body: <p>I'm writing a small program in Ruby to parse a hand history log from a poker site.
  The log is split over several lines and looks a bit like this:</p>
  
  <pre><code>Table 123456 NL Hold'em $1/$2
  5 Players
  Seat 3 is the button
  Seat 1: randomGuy112 $152.56
  Seat 2: randomGirl99 $200
  Seat 3: PokerPro $357.12
  Seat 4: FishCake556 $57.19
  Seat 6: MooMoo $188.98
  Dealt to MooMoo [Ah, Ks]
  randomGuy112 folds
  randomGirl99 raises to $7
  
  etc.. etc..
  </code></pre>
  
  <p>I want to summarise this information in an object which then might, for example, 
  render it differently or save it to database.
  When I originally thought of this problem I thought I'd just have one realativly straight forward class with a number of regexes and several if/else statements. I then realised this could turn into quite a large method and potentially be a nightmare to debug/maintain. Keep in mind it needs to loop at each stage of the game (preflop,flop etc) to collect player's actions.</p>
  
  <p>I also want to tackle this with a TDD approach, but the 'one long method' way means that the tests for with checking later input will kind of rely on earlier tests.</p>
  
  <p>I'm quite new to Ruby and havn't yet clicked on the 'Ruby way' to do things. I'm catching myself writing C# code
  in a different language. </p>
  
  <p>Can you give me some pointers on how to design the parser so it isn't one huge mess of if/else statements and more testable?</p>