0.01
The project is in a healthy, maintained state
Stop wrestling with complex type validations and unclear error messages. Domainic::Type brings type validation to Ruby that is both powerful and delightful to use. Build composable type constraints with crystal-clear error messages that actually tell you what went wrong. From simple type checks to complex collection validations, make your types work for you, not against you!
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

Domainic

Domainic Version Domainic Build Domainic Code Quality Domainic Code Coverage Domainic License Domainic Open Issues

Important

We're running an experiment with Domainic::Type! Help us explore flexible type validation in Ruby by trying our alpha release. Your feedback is invaluable for shaping the future of domain-driven design in Ruby.

A suite of Ruby libraries crafted to arm engineers with the magic of domain-driven design.

Warning

The Domainic gem is currently in pre-release. Until v0.1.0, components must be installed individually.

About

Domainic is an ecosystem of Ruby gems designed to provide a comprehensive toolkit for domain-driven design. The v0.1.0 release will include:

  • domainic-attributer - Type-safe, self-documenting class attributes
  • domainic-boundary - Clean interfaces between domain boundaries
  • domainic-command - First-class command objects for business operations
  • domainic-type - Sophisticated type constraints and validation

Current Status

The domainic gem itself will bundle all components starting with v0.1.0. Until then:

  • Components are being released individually
  • You must install each component separately
  • Only domainic-attributer is currently available

Installation

Current Pre-release Usage

Install components individually:

# Gemfile
gem 'domainic-attributer'
gem 'domainic-command'
gem 'domainic-type' # Currently in pre-release alpha

Future v0.1.0 Usage

Once v0.1.0 is released, you'll be able to install everything at once:

# Gemfile
gem 'domainic' # Will include all components

Available Components

  • domainic-attributer - A library for defining type-safe self-documenting class attributes
  • domainic-command - An implementation of the command pattern for Ruby
  • domainic-type - Stupidly granular type validations for Ruby (currently in pre-release alpha)

Development

Quick Start

  1. Clone the repository
  2. Run bin/setup to install dependencies
  3. Run bin/dev ci to ensure everything is set up correctly

Development CLI

Domainic uses a development CLI to manage the monorepo and ensure consistent development practices. View available commands with bin/dev help. See domainic-dev for more information.

Key commands:

bin/dev ci      # Run the full CI pipeline - REQUIRED before submitting PRs
bin/dev test    # Run tests for specific gems
bin/dev lint    # Run linters

Project Structure

Domainic is organized as a monorepo containing multiple gems:

  • domainic-attributer/ - Type-safe class attributes
  • domainic-boundary/ - Clean domain boundaries
  • domainic-command/ - Command objects
  • domainic-type/ - Type constraints and validation

Contributing

We welcome contributions! Please see our Contributing Guidelines for:

  • Development setup and workflow
  • Code style and documentation standards
  • Testing requirements
  • Pull request process

Before contributing, please review our Code of Conduct.

License

The gem is available as open source under the terms of the MIT License.