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: 2 months ago
JSON representation
A flexible notification library supporting the delivery to external services, rendering in various environments, and user configuration by category.
- Host: GitHub
- URL: https://github.com/jonhue/notifications-rails
- Owner: jonhue
- License: mit
- Created: 2017-12-19T06:27:28.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2024-11-11T07:05:41.000Z (3 months ago)
- Last Synced: 2024-11-11T08:18:44.579Z (3 months ago)
- Topics: notifications, rails, rubygem
- Language: Ruby
- Homepage:
- Size: 2.25 MB
- Stars: 243
- Watchers: 8
- Forks: 18
- Open Issues: 63
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
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.