The Ruby Toolbox is a catalog of all Rubygems that keeps track of popularity and health metrics to help you choose a reliable library.
This is the source code for the site you can visit at https://www.ruby-toolbox.com/
💡 We provide a ready devcontainer configuration which you can use locally or on GitHub codespaces - for further details please refer to .devcontainer/README.md. This is the easiest way to get a fully functional development setup.
You will need PostgreSQL as the database and Redis for background job processing — see Configuration for details and installation pointers.
Tooling via mise
Tool versions (Ruby, Node.js and pnpm) are managed with
mise, which also serves as the project's task runner. After
installing mise, run mise install inside your checkout
to get the full toolchain.
- Start postgres and redis
- Install the project's dependencies and prepare the database with
mise run setup - Optional but recommended: Import a partial production database dump using
bin/pull_database. You can also load some test data quickly by runningrake db:fixtures:load - In order to access the GitHub GraphQL API for pulling repo data, you need to provide a
GITHUB_TOKEN— see the Github API Client configuration. - Run the development processes (web, worker & vite) with
mise run server. You can access the site athttp://localhost:5000
- You can run the test suite with
mise run test - You can check code style and security with
mise run lint(and auto-format withmise run format) - During development you can launch guard using
bundle exec guardto continuously check your changes - The repo has overcommit git hooks set up to check your changes before commit, push etc. You can set it up once with
bundle exec overcommit --install. Whenever the hook config file.overcommit.ymlchanges, you need to verify it's contents and approve the changes withbundle exec overcommit --sign - You can find the sidekiq web UI at
http://localhost:5000/ops/sidekiq. Username can be empty, the default password isdevelopment.
See our overview of Configuration settings for an overview of what needs to be set up to run the app in production, and Deployment for how the production app on fly.io is deployed and operated.
Everyone participating in this project's development, issue trackers and other channels is expected to follow our Code of Conduct
This project is available as open source under the terms of the MIT License.