[ARCHIVED] The project is totally redesigned as @smart-rb
Meetup Slides: link
Installation
gem 'smart_core'
bundle install
# --- or ---
gem install smart_core
require '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.