The work on ROM initially started as an attempt to build the second major version of DataMapper project; however, in 2014 I decided to take the project in a different direction and turn it into an FP/OO hybrid toolkit that simplifies working with the data using Ruby language. It consists of a small(ish) core and plenty of adapters and extensions.
Core setup, adapter and relation interfaces.
ROM's mapper DSL with pluggable mapping backends.
SQL adapter for ROM powered by Sequel.
High-level interface for ROM.
...and many more. Check out rom-rb organization on GitHub to know more.
The organization was created by Andy Holland in 2015. I was thinking about doing a similar thing so I decided to contribute and started working on a couple of gems under this org. The projects aim to be a modern take on solving common problems. Libraries are small and simple to understand with great focus on reusability.
An extendible type system for Ruby with support for coercions and constrained types. This is a gem that was created to become the Virtus successor.
Powerful and very fast data validation library based on predicate logic and rule composition.
Automatic dependency-injection library that's container-agnostic and uses a simple mechanism for defining a constructor and filling in dependencies resolved by the configured container.
A high-level abstraction on top of dry-container and dry-auto_inject which provides a simple system for managing object dependencies. Originally written for Rodakase stack, then extracted into a reusable library.
Compose Ruby objects into a functional pipeline. Used by ROM as the data mapping backend.
Decorator pattern where the decorator type is preserved.
Famous Attribute DSL with coercions that I extracted from DataMapper. I stopped maintaining the project in 2015 to focus on dry-data and its usage in ROM.
I was part of the DataMapper Core Team from ~2012 to ~2013. Then moved to working on ROM in late 2013 and due to a complete lack of time stopped helping with DM in 2015.
Coercion library used by Virtus