Skip to content
Avatar
🇺🇦
🇺🇦

Sponsors

@shioyama
@kzaitsev
@panSarin
@skarlcf
@yuszuv
@radar
Private Sponsor
@mcls
@hsbt
@caius
@mintuhouse
@aboutsource
@jasoncharnes

Organizations

@hanami @rom-rb @dry-rb @valued-app @pro-rb
Block or Report

Block or report solnic

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Add an optional note:
Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
solnic/README.md

💖 How to support my Open Source work

Where to find me

About

I started contributing to Open Source projects in 2008 and over time I created, contributed to and helped with over 100 libraries and frameworks. This page lists the most notable of my contributions.

Hanami

Hanami is a Ruby application framework with a modern component-based architecture. I've been part of the core team since 2018, working on its 2.0 release which uses various dry-rb libraries as its foundation as well as rom-rb as the default "model layer".

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-validation - validation library with type-safe schemas and rules
  • dry-schema - schema DSL that was originally provided by dry-validation
  • 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-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
  • dry-monitor - a set of abstractions that help with application monitoring

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::RelationROM::Command or ROM::Mapper
  • 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 created or contributed to:

Make sure to check out our official website!

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 transformation foundation in rom-rb.

Past projects

These are the projects that I used to work in the past that are now discontinued.

DataMapper

DataMapper was a Ruby ORM that was part of the default stack of the Merb framework. I started helping with the project in late 2008 and eventually joined the core team in 2010. I mostly focused on working on the Property API (which later on was extracted into a separate library called Virtus), on-going maintenance, bug fixing, user support and handling releases.

Virtus

Virtus is a project that started as an extraction of the DataMapper Property API back in 2011. Eventually it has become very popular and made typed struct-like objects in Ruby a thing and inspired people to build their own solutions too. There were also many other gems that started using Virtus under the hood for coercions, like Representable or Grape.

The project has been discontinued in 2019 because I shifted my focus on dry-rb which provides much better solutions to the same kind of problems that virtus tried to solve.

Coercible

Coercible is the coercion backend extracted from Virtus which provides a set of generic coercions for most common data types like numbers, dates etc.

Pinned

  1. The web, with simplicity.

    Ruby 6k 535

  2. rom-rb/rom Public

    Data mapping and persistence toolkit for Ruby

    Ruby 2k 162

  3. Validation library with type-safe schemas and rules

    Ruby 1.3k 181

  4. Application framework with state management and built-in dependency injection support

    Ruby 315 66

1,186 contributions in the last year

5 contributions on Sunday, March 27, 2022 5 contributions on Monday, March 28, 2022 4 contributions on Tuesday, March 29, 2022 41 contributions on Wednesday, March 30, 2022 6 contributions on Thursday, March 31, 2022 25 contributions on Friday, April 1, 2022 7 contributions on Saturday, April 2, 2022 18 contributions on Sunday, April 3, 2022 No contributions on Monday, April 4, 2022 No contributions on Tuesday, April 5, 2022 5 contributions on Wednesday, April 6, 2022 No contributions on Thursday, April 7, 2022 3 contributions on Friday, April 8, 2022 No contributions on Saturday, April 9, 2022 No contributions on Sunday, April 10, 2022 2 contributions on Monday, April 11, 2022 5 contributions on Tuesday, April 12, 2022 3 contributions on Wednesday, April 13, 2022 4 contributions on Thursday, April 14, 2022 28 contributions on Friday, April 15, 2022 No contributions on Saturday, April 16, 2022 No contributions on Sunday, April 17, 2022 3 contributions on Monday, April 18, 2022 1 contribution on Tuesday, April 19, 2022 No contributions on Wednesday, April 20, 2022 No contributions on Thursday, April 21, 2022 1 contribution on Friday, April 22, 2022 No contributions on Saturday, April 23, 2022 No contributions on Sunday, April 24, 2022 No contributions on Monday, April 25, 2022 No contributions on Tuesday, April 26, 2022 No contributions on Wednesday, April 27, 2022 No contributions on Thursday, April 28, 2022 No contributions on Friday, April 29, 2022 No contributions on Saturday, April 30, 2022 No contributions on Sunday, May 1, 2022 No contributions on Monday, May 2, 2022 No contributions on Tuesday, May 3, 2022 No contributions on Wednesday, May 4, 2022 No contributions on Thursday, May 5, 2022 No contributions on Friday, May 6, 2022 No contributions on Saturday, May 7, 2022 No contributions on Sunday, May 8, 2022 No contributions on Monday, May 9, 2022 No contributions on Tuesday, May 10, 2022 3 contributions on Wednesday, May 11, 2022 No contributions on Thursday, May 12, 2022 No contributions on Friday, May 13, 2022 No contributions on Saturday, May 14, 2022 No contributions on Sunday, May 15, 2022 No contributions on Monday, May 16, 2022 No contributions on Tuesday, May 17, 2022 No contributions on Wednesday, May 18, 2022 No contributions on Thursday, May 19, 2022 No contributions on Friday, May 20, 2022 No contributions on Saturday, May 21, 2022 No contributions on Sunday, May 22, 2022 1 contribution on Monday, May 23, 2022 No contributions on Tuesday, May 24, 2022 No contributions on Wednesday, May 25, 2022 No contributions on Thursday, May 26, 2022 No contributions on Friday, May 27, 2022 16 contributions on Saturday, May 28, 2022 No contributions on Sunday, May 29, 2022 No contributions on Monday, May 30, 2022 No contributions on Tuesday, May 31, 2022 3 contributions on Wednesday, June 1, 2022 No contributions on Thursday, June 2, 2022 No contributions on Friday, June 3, 2022 No contributions on Saturday, June 4, 2022 No contributions on Sunday, June 5, 2022 No contributions on Monday, June 6, 2022 No contributions on Tuesday, June 7, 2022 No contributions on Wednesday, June 8, 2022 No contributions on Thursday, June 9, 2022 No contributions on Friday, June 10, 2022 No contributions on Saturday, June 11, 2022 No contributions on Sunday, June 12, 2022 No contributions on Monday, June 13, 2022 1 contribution on Tuesday, June 14, 2022 3 contributions on Wednesday, June 15, 2022 No contributions on Thursday, June 16, 2022 1 contribution on Friday, June 17, 2022 No contributions on Saturday, June 18, 2022 No contributions on Sunday, June 19, 2022 No contributions on Monday, June 20, 2022 1 contribution on Tuesday, June 21, 2022 4 contributions on Wednesday, June 22, 2022 4 contributions on Thursday, June 23, 2022 2 contributions on Friday, June 24, 2022 4 contributions on Saturday, June 25, 2022 1 contribution on Sunday, June 26, 2022 No contributions on Monday, June 27, 2022 No contributions on Tuesday, June 28, 2022 2 contributions on Wednesday, June 29, 2022 5 contributions on Thursday, June 30, 2022 15 contributions on Friday, July 1, 2022 1 contribution on Saturday, July 2, 2022 No contributions on Sunday, July 3, 2022 11 contributions on Monday, July 4, 2022 2 contributions on Tuesday, July 5, 2022 5 contributions on Wednesday, July 6, 2022 1 contribution on Thursday, July 7, 2022 8 contributions on Friday, July 8, 2022 10 contributions on Saturday, July 9, 2022 28 contributions on Sunday, July 10, 2022 3 contributions on Monday, July 11, 2022 4 contributions on Tuesday, July 12, 2022 No contributions on Wednesday, July 13, 2022 No contributions on Thursday, July 14, 2022 3 contributions on Friday, July 15, 2022 No contributions on Saturday, July 16, 2022 No contributions on Sunday, July 17, 2022 No contributions on Monday, July 18, 2022 No contributions on Tuesday, July 19, 2022 No contributions on Wednesday, July 20, 2022 No contributions on Thursday, July 21, 2022 No contributions on Friday, July 22, 2022 No contributions on Saturday, July 23, 2022 No contributions on Sunday, July 24, 2022 No contributions on Monday, July 25, 2022 7 contributions on Tuesday, July 26, 2022 No contributions on Wednesday, July 27, 2022 No contributions on Thursday, July 28, 2022 5 contributions on Friday, July 29, 2022 No contributions on Saturday, July 30, 2022 No contributions on Sunday, July 31, 2022 No contributions on Monday, August 1, 2022 No contributions on Tuesday, August 2, 2022 No contributions on Wednesday, August 3, 2022 No contributions on Thursday, August 4, 2022 1 contribution on Friday, August 5, 2022 3 contributions on Saturday, August 6, 2022 No contributions on Sunday, August 7, 2022 No contributions on Monday, August 8, 2022 1 contribution on Tuesday, August 9, 2022 3 contributions on Wednesday, August 10, 2022 No contributions on Thursday, August 11, 2022 3 contributions on Friday, August 12, 2022 No contributions on Saturday, August 13, 2022 No contributions on Sunday, August 14, 2022 1 contribution on Monday, August 15, 2022 5 contributions on Tuesday, August 16, 2022 No contributions on Wednesday, August 17, 2022 No contributions on Thursday, August 18, 2022 No contributions on Friday, August 19, 2022 No contributions on Saturday, August 20, 2022 No contributions on Sunday, August 21, 2022 4 contributions on Monday, August 22, 2022 5 contributions on Tuesday, August 23, 2022 1 contribution on Wednesday, August 24, 2022 No contributions on Thursday, August 25, 2022 No contributions on Friday, August 26, 2022 No contributions on Saturday, August 27, 2022 No contributions on Sunday, August 28, 2022 No contributions on Monday, August 29, 2022 1 contribution on Tuesday, August 30, 2022 2 contributions on Wednesday, August 31, 2022 No contributions on Thursday, September 1, 2022 No contributions on Friday, September 2, 2022 No contributions on Saturday, September 3, 2022 No contributions on Sunday, September 4, 2022 No contributions on Monday, September 5, 2022 1 contribution on Tuesday, September 6, 2022 No contributions on Wednesday, September 7, 2022 2 contributions on Thursday, September 8, 2022 1 contribution on Friday, September 9, 2022 3 contributions on Saturday, September 10, 2022 1 contribution on Sunday, September 11, 2022 No contributions on Monday, September 12, 2022 12 contributions on Tuesday, September 13, 2022 No contributions on Wednesday, September 14, 2022 1 contribution on Thursday, September 15, 2022 4 contributions on Friday, September 16, 2022 1 contribution on Saturday, September 17, 2022 No contributions on Sunday, September 18, 2022 4 contributions on Monday, September 19, 2022 No contributions on Tuesday, September 20, 2022 9 contributions on Wednesday, September 21, 2022 No contributions on Thursday, September 22, 2022 2 contributions on Friday, September 23, 2022 No contributions on Saturday, September 24, 2022 No contributions on Sunday, September 25, 2022 No contributions on Monday, September 26, 2022 No contributions on Tuesday, September 27, 2022 1 contribution on Wednesday, September 28, 2022 No contributions on Thursday, September 29, 2022 No contributions on Friday, September 30, 2022 5 contributions on Saturday, October 1, 2022 1 contribution on Sunday, October 2, 2022 1 contribution on Monday, October 3, 2022 1 contribution on Tuesday, October 4, 2022 12 contributions on Wednesday, October 5, 2022 No contributions on Thursday, October 6, 2022 No contributions on Friday, October 7, 2022 16 contributions on Saturday, October 8, 2022 11 contributions on Sunday, October 9, 2022 1 contribution on Monday, October 10, 2022 No contributions on Tuesday, October 11, 2022 1 contribution on Wednesday, October 12, 2022 6 contributions on Thursday, October 13, 2022 12 contributions on Friday, October 14, 2022 68 contributions on Saturday, October 15, 2022 9 contributions on Sunday, October 16, 2022 24 contributions on Monday, October 17, 2022 3 contributions on Tuesday, October 18, 2022 1 contribution on Wednesday, October 19, 2022 10 contributions on Thursday, October 20, 2022 7 contributions on Friday, October 21, 2022 5 contributions on Saturday, October 22, 2022 5 contributions on Sunday, October 23, 2022 2 contributions on Monday, October 24, 2022 No contributions on Tuesday, October 25, 2022 No contributions on Wednesday, October 26, 2022 No contributions on Thursday, October 27, 2022 1 contribution on Friday, October 28, 2022 1 contribution on Saturday, October 29, 2022 11 contributions on Sunday, October 30, 2022 16 contributions on Monday, October 31, 2022 12 contributions on Tuesday, November 1, 2022 No contributions on Wednesday, November 2, 2022 20 contributions on Thursday, November 3, 2022 52 contributions on Friday, November 4, 2022 42 contributions on Saturday, November 5, 2022 10 contributions on Sunday, November 6, 2022 25 contributions on Monday, November 7, 2022 15 contributions on Tuesday, November 8, 2022 No contributions on Wednesday, November 9, 2022 8 contributions on Thursday, November 10, 2022 14 contributions on Friday, November 11, 2022 17 contributions on Saturday, November 12, 2022 No contributions on Sunday, November 13, 2022 11 contributions on Monday, November 14, 2022 15 contributions on Tuesday, November 15, 2022 6 contributions on Wednesday, November 16, 2022 27 contributions on Thursday, November 17, 2022 16 contributions on Friday, November 18, 2022 3 contributions on Saturday, November 19, 2022 21 contributions on Sunday, November 20, 2022 20 contributions on Monday, November 21, 2022 11 contributions on Tuesday, November 22, 2022 17 contributions on Wednesday, November 23, 2022 13 contributions on Thursday, November 24, 2022 No contributions on Friday, November 25, 2022 5 contributions on Saturday, November 26, 2022 No contributions on Sunday, November 27, 2022 No contributions on Monday, November 28, 2022 No contributions on Tuesday, November 29, 2022 No contributions on Wednesday, November 30, 2022 2 contributions on Thursday, December 1, 2022 1 contribution on Friday, December 2, 2022 No contributions on Saturday, December 3, 2022 No contributions on Sunday, December 4, 2022 1 contribution on Monday, December 5, 2022 No contributions on Tuesday, December 6, 2022 No contributions on Wednesday, December 7, 2022 No contributions on Thursday, December 8, 2022 36 contributions on Friday, December 9, 2022 26 contributions on Saturday, December 10, 2022 No contributions on Sunday, December 11, 2022 No contributions on Monday, December 12, 2022 No contributions on Tuesday, December 13, 2022 No contributions on Wednesday, December 14, 2022 3 contributions on Thursday, December 15, 2022 No contributions on Friday, December 16, 2022 1 contribution on Saturday, December 17, 2022 No contributions on Sunday, December 18, 2022 2 contributions on Monday, December 19, 2022 No contributions on Tuesday, December 20, 2022 No contributions on Wednesday, December 21, 2022 No contributions on Thursday, December 22, 2022 No contributions on Friday, December 23, 2022 8 contributions on Saturday, December 24, 2022 No contributions on Sunday, December 25, 2022 No contributions on Monday, December 26, 2022 No contributions on Tuesday, December 27, 2022 No contributions on Wednesday, December 28, 2022 33 contributions on Thursday, December 29, 2022 13 contributions on Friday, December 30, 2022 12 contributions on Saturday, December 31, 2022 11 contributions on Sunday, January 1, 2023 2 contributions on Monday, January 2, 2023 No contributions on Tuesday, January 3, 2023 No contributions on Wednesday, January 4, 2023 No contributions on Thursday, January 5, 2023 No contributions on Friday, January 6, 2023 No contributions on Saturday, January 7, 2023 No contributions on Sunday, January 8, 2023 2 contributions on Monday, January 9, 2023 No contributions on Tuesday, January 10, 2023 No contributions on Wednesday, January 11, 2023 No contributions on Thursday, January 12, 2023 No contributions on Friday, January 13, 2023 No contributions on Saturday, January 14, 2023 No contributions on Sunday, January 15, 2023 No contributions on Monday, January 16, 2023 No contributions on Tuesday, January 17, 2023 No contributions on Wednesday, January 18, 2023 No contributions on Thursday, January 19, 2023 No contributions on Friday, January 20, 2023 No contributions on Saturday, January 21, 2023 No contributions on Sunday, January 22, 2023 No contributions on Monday, January 23, 2023 No contributions on Tuesday, January 24, 2023 No contributions on Wednesday, January 25, 2023 No contributions on Thursday, January 26, 2023 No contributions on Friday, January 27, 2023 No contributions on Saturday, January 28, 2023 No contributions on Sunday, January 29, 2023 1 contribution on Monday, January 30, 2023 No contributions on Tuesday, January 31, 2023 No contributions on Wednesday, February 1, 2023 No contributions on Thursday, February 2, 2023 No contributions on Friday, February 3, 2023 No contributions on Saturday, February 4, 2023 No contributions on Sunday, February 5, 2023 No contributions on Monday, February 6, 2023 No contributions on Tuesday, February 7, 2023 No contributions on Wednesday, February 8, 2023 No contributions on Thursday, February 9, 2023 No contributions on Friday, February 10, 2023 No contributions on Saturday, February 11, 2023 No contributions on Sunday, February 12, 2023 No contributions on Monday, February 13, 2023 1 contribution on Tuesday, February 14, 2023 No contributions on Wednesday, February 15, 2023 No contributions on Thursday, February 16, 2023 1 contribution on Friday, February 17, 2023 No contributions on Saturday, February 18, 2023 No contributions on Sunday, February 19, 2023 No contributions on Monday, February 20, 2023 No contributions on Tuesday, February 21, 2023 No contributions on Wednesday, February 22, 2023 No contributions on Thursday, February 23, 2023 No contributions on Friday, February 24, 2023 No contributions on Saturday, February 25, 2023 No contributions on Sunday, February 26, 2023 No contributions on Monday, February 27, 2023 No contributions on Tuesday, February 28, 2023 No contributions on Wednesday, March 1, 2023 No contributions on Thursday, March 2, 2023 No contributions on Friday, March 3, 2023 No contributions on Saturday, March 4, 2023 No contributions on Sunday, March 5, 2023 No contributions on Monday, March 6, 2023 No contributions on Tuesday, March 7, 2023 No contributions on Wednesday, March 8, 2023 6 contributions on Thursday, March 9, 2023 No contributions on Friday, March 10, 2023 No contributions on Saturday, March 11, 2023 1 contribution on Sunday, March 12, 2023 1 contribution on Monday, March 13, 2023 18 contributions on Tuesday, March 14, 2023 1 contribution on Wednesday, March 15, 2023 No contributions on Thursday, March 16, 2023 No contributions on Friday, March 17, 2023 No contributions on Saturday, March 18, 2023 No contributions on Sunday, March 19, 2023 1 contribution on Monday, March 20, 2023 No contributions on Tuesday, March 21, 2023 No contributions on Wednesday, March 22, 2023 No contributions on Thursday, March 23, 2023 No contributions on Friday, March 24, 2023 No contributions on Saturday, March 25, 2023 No contributions on Sunday, March 26, 2023 No contributions on Monday, March 27, 2023 Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Mon Wed Fri
Activity overview
Contributed to dry-rb/dry-logger, dry-rb/dry-schema, hanami/hanami and 59 other repositories