Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/toptal/granite
Business Actions architecture for Rails apps
https://github.com/toptal/granite
Last synced: about 1 month ago
JSON representation
Business Actions architecture for Rails apps
- Host: GitHub
- URL: https://github.com/toptal/granite
- Owner: toptal
- License: mit
- Created: 2018-02-23T12:40:41.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-02T12:26:32.000Z (about 2 months ago)
- Last Synced: 2024-08-02T14:04:55.867Z (about 2 months ago)
- Language: Ruby
- Homepage: https://toptal.github.io/granite/
- Size: 900 KB
- Stars: 168
- Watchers: 129
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Granite
Granite is an alternative Rails application architecture framework.
[![Build Status](https://travis-ci.org/toptal/granite.svg?branch=master)](https://travis-ci.org/toptal/granite)
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'granite'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install granite
## Usage
Please see [our official documentation](https://toptal.github.io/granite/) or check the
[granite application example](https://github.com/toptal/example_granite_application).### Versioning
We use [semantic versioning](https://semver.org/) for our [releases](https://github.com/toptal/granite/releases).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/toptal/granite.
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
### Running specs
To run specs you can run
```
bin/setup
docker-compose up
rspec
```### Using Granite's Rubocop config
Add this to your Rubocop config file:
```
require:
- rubocop-granite
```This will add config for `Lint/UselessAccessModifier` to treat `projector` as separate context. It is equivalent to:
```
Lint/UselessAccessModifier:
ContextCreatingMethods:
- projector
```## License
Granite is released under the [MIT License](https://opensource.org/licenses/MIT).