Ruby on Rails: The Radial Toolbox

The Rails community is extensive and we work with a broad array of tools. Often, a community-based package, including a core set of tools, can fulfill your needs. We love this about Rails and we contribute and participate when possible. The high quality of Ruby gems makes Rails one of the best tools for prototyping and building amazing software.

Our Project Standards

While we definitely work with many many versions of Ruby, Rails, and various gems, Radial certainly has preferences. The major gems we depend on:

  • Devise - For user management, nothing is better for getting started.
  • Pundit - For access control, this is a powerful and flexible tool
  • Postgres Relational Database - One of our standard tools. Radial uses MySQL, too but Postgres provides flexibility for non-SQL data types.
  • Redis/Sidekiq - Sidekiq is amazing for queue-based tasks
  • SendGrid - For transactional email, SendGrid is unmatched.
  • Stripe - Easily the best early-stage tool. Stripe provides financial integrations with credit cards for one-time and subscription purchases.
  • Heroku - DevOps as a service. The price is unbeatable and Heroku is suitable for all but very large scale companies.
  • 12 Factor Applications - At Radial, we’re big fans of decoupled, single-page web applications with strong separation between SPA JavaScript and Rails backends.

How We Test

Radial strongly believes in automated testing. TDD/BDD is a robust paradigm that contributes to code quality by strongly defining feature requests. It also ensures changes and new features don’t create regressive bugs, breaking pre-existing features.

At Radial, we believe in writing tests in a user-oriented manner, emphasizing feature and data testing. Our developers mimic user behavior and assure the data matches expected behavior.

  • rspec - This test-oriented, domain-specific language is an unrivaled test tool..
  • Capybara - For user-facing testing, Capybara allows us to automate the testing of complex user stories.
  • FactoryBot - There isn’t a better tool for mocking data.
  • Faker - When it comes to creating a myriad of test-only fake users for a system, adding random addresses, or other fake data needs, Faker is an amazing tool.
  • Mocha/Chai - for front-end JavaScript testing, we like Mocha and Chai. We also like Enzyme and Jasmine.

Our Project Standards

For Radial developers to create, all the systems we use must be simple and well defined. Projects always include set-up and deployment instructions. We expect a new developer to have a project running on her system in less than 30 minutes. In each project, Radial documents our language standards and pull-request expectations.

Additionally, Radial’s clients are best served by a comprehensive peer-review process for all of our team’s pull requests. By enforcing a strong culture of code review, we are able to ensure concise, maintainable, intentional code, alleviating code debt and providing long-term maintainability.