Welcome to CableReady 👋
CableReady helps you create great real-time user experiences by making it simple to trigger client-side DOM changes from server-side Ruby. It establishes a standard for interacting with the client via ActionCable web sockets. No need for custom JavaScript.
Please read the official ActionCable docs to learn more about ActionCable before proceeding.
📚 Docs
💙 Community
- Discord - primary support channel
🚀 Install
Rubygem
bundle add cable_ready
JavaScript
There are a few ways to install the CableReady JavaScript client, depending on your application setup.
ESBuild / Webpacker
yarn add cable_ready
Import maps:
# config/importmap.rb
# ...
pin 'cable_ready', to: 'cable_ready.js', preload: true
Rails Asset pipeline (Sprockets):
<!-- app/views/layouts/application.html.erb -->
<%= javascript_include_tag "cable_ready.umd.js", "data-turbo-track": "reload" %>
Checkout the documentation to continue!
🙏 Contributing
Code of Conduct
Everyone interacting with CableReady is expected to follow the Code of Conduct
Coding Standards
This project uses Standard and prettier-standard to minimize bike shedding related to code formatting.
Please run ./bin/standardize
prior submitting pull requests.
📦 Releasing
- Make sure that you run
yarn
andbundle
to pick up the latest. - Bump version number at
lib/cable_ready/version.rb
. Pre-release versions use.preN
- Run
rake build
andyarn build
- Commit and push changes to GitHub
- Run
rake release
- Run
yarn publish --no-git-tag-version
- Yarn will prompt you for the new version. Pre-release versions use
-preN
- Commit and push changes to GitHub
- Create a new release on GitHub (here) and generate the changelog for the stable release for it
📝 License
CableReady is released under the MIT License.