[ARCHIVED] The project is totally redesigned as @smart-rb
Meetup Slides: link
Installation
gem 'smart_core'bundle install
# --- or ---
gem install smart_corerequire 'smart_core'Completed abstractions:
- Service Object (Operation, Functional Object);
- IoC Container (Dependency Container);
- Initializer (DSL);
- Validator (Validation Layer);
Roadmap
- Value Object (
SmartCore::ValueObject(DTO) (truely immutable and comparable objects ๐)); - Schema Structure Validator (
SmartCore::Schema); - Saga (
SmartCore::Saga); - External Type System (
SmartCore::Types);- Suport for Interface Type Checking (Duck-typing checker ๐ค);
- Step-like execution behavior for
SmartCore::Operation(.step,SmartCore::Railway); - Automatic result instantiation and handling for
SmartCore::Operation;
Contributing
- Fork it ( https://github.com/0exp/smart_core/fork )
- Create your feature branch (
git checkout -b feature/my-new-feature) - Commit your changes (
git commit -am '[feature_context] Add some feature') - Push to the branch (
git push origin feature/my-new-feature) - Create new Pull Request
License
Released under MIT License.