Refactoring to Use a Database

In our current system, the balance of the single account is stored in a file and read and written by the BalanceStore class. In our new design, we will make the Account responsible for reading the balance straight out of a database instead. It’s refactoring time again!

We’ll start by moving the Account class into its own lib/account.rb file and make it an ActiveRecord class:

 require ​'active_record'
 ActiveRecord::Base.establish_connection(​:adapter​ => ​'sqlite3'​,
 :database​ => ​'db/bank.db'​)
 ActiveRecord::Migrator.migrate(​"db/migrate/"​)
 class​ Account < ActiveRecord::Base
  validates_uniqueness_of ​:number
 def​ queue
  @queue ||= TransactionQueue.new
 end
 def ...

Get The Cucumber Book, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.