DEV Community

Discussion on: Who's looking for open source contributors? (March 25th edition)

Collapse
 
vinistock profile image
Vinicius Stock

For anyone looking for Ruby projects to contribute, Sail and Correspondent are always looking for feedback, new ideas and contributions!

vinistock / sail

Sail is a lightweight Rails engine that brings an admin panel for managing configuration settings on a live Rails app

dashboard

Maintainability Build Status Test Coverage Gem Version

Sail

This Rails engine brings a setting model into your app to be used as feature flags, gauges, knobs and other live controls you may need.

It saves configurations to the database so that they can be changed while the application is running, without requiring a deploy.

Having this ability enables live experiments and tuning to find an application's best setup.

Enable/Disable a new feature, turn ON/OFF ab testing for new functionality, change jobs' parameters to tune performance, you name it.

It comes with a lightweight responsive admin dashboard for searching and changing configurations on the fly.

Sail assigns to each setting a relevancy score. This metric is calculated while the application is running and is based on the relative number of times a setting is invoked and on the total number of settings. The goal is to have an indicator of how critical changing a setting's value can…

vinistock / correspondent

Dead simple configurable user notifications with little overhead

Build Status Maintainability Test Coverage Gem Version

Correspondent

Dead simple configurable user notifications using the Correspondent engine!

Configure subscribers and publishers and let Correspondent deal with all notification work with very little overhead.

Installation

Add this line to your application's Gemfile:

gem 'correspondent'

And then execute:

$ bundle

Create the necessary migrations:

$ rails g correspondent:install

Usage

Model configuration

Notifications can easily be setup using Correspondent. The following example goes through the basic usage. There are only two steps for the basic configuration:

  1. Invoke notifies and configure the subscriber (user in this case), the triggers (method purchase in this case) and desired options
  2. Define the to_notification method to configure information that needs to be used to create notifications
# Example model using Correspondent
# app/models/purchase.rb 
class Purchase < ApplicationRecord
  belongs_to :user
  belongs_to :store
  # Notifies configuration
  # First argument is the subscriber (the one that receives a notification). Can be an NxN association as well