Marketplace
Browse and adopt engineering standards, rules, and configurations. Fork to customize for your organization.
Use RuboCop for Ruby linting
linting
RuboCop with .rubocop.yml config. Inherit from rubocop-rails, rubocop-minitest. Auto-correct safe cops.
Use Bundler for Ruby gems
package_manager
Gemfile + Gemfile.lock. `bundle install --deployment` in prod. Groups for dev/test. `bundle exec` for commands.
Prefer composition over inheritance
ruby
Favor modules and dependency injection over deep inheritance. Max 2-3 inheritance levels. Duck typing over type checking.
Use StandardRB for Ruby formatting
formatting
StandardRB: no config, no debates. RuboCop with opinionated defaults. Just run `standardrb --fix`.
Explicit return values in methods
ruby
Return meaningful values or `self`. Predicates (`?`) return booleans. Bang methods (`!`) mutate or raise.
Use Hanami for clean Ruby architecture
ruby
Hanami for DDD-style Ruby apps. Explicit dependencies. Actions over controllers. Repositories for persistence.
Use Ruby 3+ features
ruby
Use pattern matching, endless methods (`def x = ...`), hash shorthand `{x:}`, numbered params `_1`. Ruby 3.2+.
Use Sinatra for simple Ruby APIs
ruby
Sinatra for microservices and simple APIs. Modular style for larger apps. Rack middleware compatible.
Use RSpec for Ruby BDD
testing
RSpec describe/context/it. let/let! for setup. FactoryBot for data. Avoid excessive mocking.