Instead of banging my head against the game logic diffculty of RubyTet, I decided to work on other game features instead. So I worked on limiting the movement of the shape by figuring how much to offset. Then I went to work on player activated complete drop, which meant that the player has decided to just drop the shape.
In course of implementing this feature, I discovered that I must again make new classes so it make the task of writing new features easier. Currently, the classes are incomplete. However, I hope this task will keep me occupied as I figured out a solution to my difficulty.