Contributing
Bug reports and pull requests are welcome at github.com/brolinr/opinionated_rails.
New to the code? Read in this order:
- Architecture: how a run flows and what the main classes do.
- Writing a step: the contract every option follows, and the checklist for adding one.
- Testing: the fast suite, and the real-app matrix that proves a combination works.
- Style and Releasing.
Set up
git clone https://github.com/brolinr/opinionated_rails
cd opinionated_rails
bin/setup
bundle exec rspec
bundle exec rubocop
Rails 8.1+ must be installed (gem install rails), because the fast suite runs a real rails new --skip-bundle.
The principle
A generator can write exactly the text you expect and still produce an app that cannot boot. Several real bugs in this project did (a pagination module that no longer exists, a half-removed Redis stack, a missing root route). So the proof that a change works is a generated app that boots and passes its own checks, not a string assertion. Unit specs are necessary; the real-app matrix is what you rely on.