Project

domainic

0.01
The project is in a healthy, maintained state
Coming Soon
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

= 0.1.0.alpha.1.1.0
 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.