Implementing the most common Ruby refactoring techniques
Two refactoring techniques are very common in Ruby, extracting a method and extracting a class. Let's focus first on extracting a method, as that is more common.
Extracting a method
Extracting a method is generally done when you have found the same code or same pattern of code in multiple places that is being executed for the same reasons.
As an example of this, consider a SQL database library that needs to execute INSERT, UPDATE, and DELETE SQL queries to modify data.
You have a Database class with separate methods to handle each type of query. The insert method checks out a connection, executes the SQL for the INSERT statement on the connection, and uses ensure to make sure the connection is checked back in, because you do not want to leak connections if an exception is raised. Refer to the following code block:
class Database   def insert(*args)     conn = checkout_connection...