- Notifications
You must be signed in to change notification settings - Fork1
A suite of Ruby libraries crafted to arm engineers with the magic of domain-driven design.
License
domainic/domainic
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Important
We're running an experiment with Domainic::Type! Help us explore flexible type validation in Ruby by trying ouralpha release. Your feedback isinvaluable 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.
Domainic is an ecosystem of Ruby gems designed to provide a comprehensive toolkit for domain-driven design. The v0.1.0release will include:
- domainic-attributer - Type-safe,self-documenting class attributes
- domainic-boundary - Clean interfaces between domain boundaries
- domainic-command - First-class command objects forbusiness operations
- domainic-type - Sophisticated type constraints andvalidation
Thedomainic
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
Install components individually:
# Gemfilegem'domainic-attributer'gem'domainic-command'gem'domainic-type'# Currently in pre-release alpha
Once v0.1.0 is released, you'll be able to install everything at once:
# Gemfilegem'domainic'# Will include all components
- domainic-attributer - A library fordefining type-safe self-documenting class attributes
- domainic-command - An implementation of the commandpattern for Ruby
- domainic-type - Stupidly granular type validations forRuby (currently in pre-release alpha)
- Clone the repository
- Run
bin/setup
to install dependencies - Run
bin/dev ci
to ensure everything is set up correctly
Domainic uses a development CLI to manage the monorepo and ensure consistent development practices. View availablecommands withbin/dev help
. Seedomainic-devfor more information.
Key commands:
bin/dev ci# Run the full CI pipeline - REQUIRED before submitting PRsbin/devtest# Run tests for specific gemsbin/dev lint# Run linters
Domainic is organized as a monorepo containing multiple gems:
domainic-attributer/
- Type-safe class attributesdomainic-boundary/
- Clean domain boundariesdomainic-command/
- Command objectsdomainic-type/
- Type constraints and validation
We welcome contributions! Please see ourContributing Guidelines for:
- Development setup and workflow
- Code style and documentation standards
- Testing requirements
- Pull request process
Before contributing, please review ourCode of Conduct.
The gem is available as open source under the terms of theMIT License.
About
A suite of Ruby libraries crafted to arm engineers with the magic of domain-driven design.