Sha256: 2789bae4a5b3ae098dda51f5393aa70a1ecc9fa4bea556c20cb0aa08a1100d14

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

# SmartCore · [![Gem Version](https://badge.fury.io/rb/smart_core.svg)](https://badge.fury.io/rb/smart_core) [![Build Status](https://travis-ci.org/0exp/smart_core.svg?branch=master)](https://travis-ci.org/0exp/smart_core)

In active development (**Coming Soon**: Powerful documentaion :))
> Meetup Slides: [link](docs/SmartCore.pdf)

---

## Installation

```ruby
gem 'smart_core'
```

```shell
bundle install
# --- or ---
gem install smart_core
```

```ruby
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.

## Authors

[Rustam Ibragimov](https://github.com/0exp)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
smart_core-0.8.1 README.md