Project

arlequin

0.0
The project is in a healthy, maintained state
Performance Logger Gem
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 5.0
 Project Readme

Arlequin

Arlequin is a Ruby gem that helps detect and warn about N+1 SQL queries in Rails applications. It includes middleware that integrates seamlessly with your Rails application to improve performance by identifying inefficient database queries.

Features

  • N+1 Query Detection: Automatically detects and warns about N+1 query problems.
  • Integration: Easy integration with Rails applications through a Railtie.
  • Performance Insights: Provides detailed insights into query performance issues.

Installation

Add this line to your application's Gemfile:

gem 'arlequin', group: [ :development ]

Then execute:

$ bundle install

Usage

Basic Setup

To start using Arlequin, simply add the following to your Rails application’s configuration file (config/application.rb):

require 'arlequin'

Middleware

Arlequin integrates with Rails as middleware. It will automatically start monitoring SQL queries for N+1 problems. No additional setup is required beyond including it in your Gemfile and configuration.

Example

Suppose you have a Rails application with a Post model that has many Comments. If you inadvertently write code like:

@posts = Post.all
@posts.each do |post|
  puts post.comments.count
end

Arlequin will detect this N+1 query issue and warn you about it in the UI.

Development

To contribute to Arlequin, clone the repository and run the test suite:

git clone https://github.com/dominicgoulet/arlequin.git
cd arlequin
bundle install
rake test

Make sure to write tests for any new features or bug fixes you add. Follow the existing coding style and conventions used in the project.

Contributing

We welcome contributions! Please submit pull requests and issues through GitHub. Ensure your code adheres to the project’s style and includes appropriate tests.

License

Arlequin is released under the MIT License.

Contact

For any questions or feedback, feel free to reach out to us at [dominic@dominicgoulet.com].