Ruby ha sido descrito como un lenguaje de programación multiparadigma: permite programación procedimental (definiendo funciones y variables fuera de las clases haciéndolas parte del objeto raíz Object), con orientación a objetos, (todo es un objeto) o funcionalmente (tiene funciones anónimas, clausuras y continuaciones; todas las sentencias tiene valores, y las funciones devuelven la última evaluación).