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.
The Ruby Toolbox depends on a few utilities which you will need to install before you begin.
PostgreSQL (Version 16)
- Linux: Use the official postgres repositories for Apt or Yum
- Mac OS: Use HomeBrew or Postgres.app
- Linux: On Ubuntu, you can use this PPA. Otherwise build from source as detailed in The Redis quickstart.
- Mac OS: Use HomeBrew or build from source as detailed in The Redis quickstart.
Install the current project ruby version, preferrably with a Ruby version manager like chruby, rbenv, or rvm
You will also need Bundler for installing the project's dependencies.
Node.js and NPM
vite, npm and node.js are to manage frontend dependencies for the project. You will need Node.js and npm.
- Start postgres and redis
- Install the project's dependencies and prepare the database with
bin/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 create a OAuth token as per GitHub's documentation. No auth scopes are needed. Place the token as
GITHUB_TOKEN=yourtoken
in.env.local
and.env.local.test
. - Run the services with
foreman start
. You can access the site athttp://localhost:5000
- You can run the test suite with
bundle exec rspec
- You can check code style with
bundle exec rubocop
- During development you can launch guard using
bundle exec guard
to 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.yml
changes, 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.
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.