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.
- Host: GitHub
- URL: https://github.com/jonhue/notifications-rails
- Owner: jonhue
- License: mit
- Created: 2017-12-19T06:27:28.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-02-18T09:21:15.000Z (5 months ago)
- Last Synced: 2024-02-18T09:33:20.627Z (5 months ago)
- Topics: notifications, rails, rubygem
- Language: Ruby
- Homepage:
- Size: 1.79 MB
- Stars: 238
- Watchers: 7
- Forks: 18
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Lists
- awesome-stars - jonhue/notifications-rails - A flexible notification library supporting the delivery to external services, rendering in various environments, and user configuration by category. (Ruby)
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.