transproc

Transproc is a Ruby gem which provides an API for functional composition of arbitrary Proc-like objects. It introduced the left-to-right >> function composition operator, which is now considered as a potential addition to Ruby’s core.

The gem comes with a ton of built-in data transformation functions, which initially was its main purpose. It is used as the data trasformation foundation in rom-mapper and rom-changeset.

dry-rb

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 organization. The projects aim to be a modern take on solving common problems. Libraries are small and simple to understand with a great focus on reusability.

My main contributions include:

  • dry-types – a flexible “type system” for Ruby projects. Currently it’s the foundation for other libraries, like rom-rb, dry-validation, hanami or reform
  • dry-struct – a virtus-like attributes API for POROs
  • dry-validation – data validation based on predicate logic with composable rules
  • dry-logic – composable rule objects
  • dry-system – a modern way of organizing Ruby applications using dependency injection as the architectural foundation
  • dry-auto_inject – container-agnostic auto-injection abstraction
  • dry-events – a simple pub/sub solution

Make sure to check out our official website!

rom-rb

The work on Ruby Object Mapper (rom-rb) initially started as an attempt to build the second major version of the 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.

My contributions include:

  • rom-core – design and implementation of the core APIs, such asROM::GatewayROM::Relation or ROM::Command
  • rom-mapper – design and implementation of the mapper component
  • rom-repository – design and implementation of the repository component
  • rom-changeset – design and implementation of the changeset component

Apart from its main components, I’ve also helped with:

Make sure to check out our official website!

Up ↑