Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/jonhue/notifications-rails

A flexible notification library supporting the delivery to external services, rendering in various environments, and user configuration by category.
https://github.com/jonhue/notifications-rails

notifications rails rubygem

Last synced: about 1 month ago
JSON representation

A flexible notification library supporting the delivery to external services, rendering in various environments, and user configuration by category.

Lists

README

        

# notifications-rails

A flexible notification library supporting the delivery to external services, rendering in various environments, and user configuration by category.

## Philosophy

notifications-rails has been built with modularity in mind. It currently consists of four components each of which bringing one essential functionality to the integration of notifications in your Rails app.

**[notification-handler](notification-handler):** Create and modify your notifications through a simple API.

**[notification-renderer](notification-renderer):** Render your notifications in various contexts.

**[notification-pusher](notification-pusher):** Deliver your notifications to various services, including [Email](notification-pusher/notification-pusher-actionmailer) and [OneSignal](notification-pusher/notification-pusher-onesignal).

**[notification-settings](notification-settings):** Integrates with your authentication solution to craft a personalized user notification platform.

You may just use the components you actually need, or instead use this gem to bundle everything for a complete notification solution.

## Installation

You can add notifications-rails to your `Gemfile` with:

```ruby
gem 'notifications-rails'
```

And then run:

$ bundle install

Or install it yourself as:

$ gem install notifications-rails

If you always want to be up to date fetch the latest from GitHub in your `Gemfile`:

```ruby
gem 'notifications-rails', github: 'jonhue/notifications-rails'
```

## Usage

Details on usage are provided in the [documentation](#philosophy) of the specific modules.

## Development

To start development you first have to fork this repository and locally clone your fork.

Install the projects dependencies by running:

$ bundle install

### Testing

Tests are written with RSpec. Integration tests are located in `/spec`, unit tests can be found in `/spec`.

To run all tests:

$ ./rspec

To run RuboCop:

$ bundle exec rubocop

You can find all commands run by the CI workflow in `.github/workflows/ci.yml`.

## Contributing

We warmly welcome everyone who is intersted in contributing. Please reference our [contributing guidelines](CONTRIBUTING.md) and our [Code of Conduct](CODE_OF_CONDUCT.md).

## Releases

[Here](https://github.com/jonhue/notifications-rails/releases) you can find details on all past releases. Unreleased breaking changes that are on the current master can be found [here](CHANGELOG.md).

notifications-rails follows Semantic Versioning 2.0 as defined at http://semver.org. Reference our [security policy](SECURITY.md).

### Publishing

1. Review breaking changes and deprecations in `CHANGELOG.md`.
1. Change the gem version in `VERSION`.
1. Reset `CHANGELOG.md`.
1. Create a pull request to merge the changes into `master`.
1. After the pull request was merged, create a new release listing the breaking changes and commits on `master` since the last release.
1. The release workflow will publish the gems to RubyGems.