# cable_ready

> CableReady helps you create great real-time user experiences by making it simple to trigger client-side DOM changes from server-side Ruby.

Latest version **5.0.6** (published 2024-12-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install cable_ready
pnpm add cable_ready
yarn add cable_ready
bun add cable_ready
```

## Health

**Score 30/100 (F)** — status: maintenance-mode.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 5.0.6 |
| Published | 2024-12-15 |
| First published | 2019-08-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 173.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 771 |
| Author | Nathan Hopkins |
| Maintainers | hopsoft, julianrubisch, marcoroth |
| Keywords | ruby, rails, websockets, actioncable, cable, ssr, stimulus_reflex, client-side, dom |

## Links

- npm: https://www.npmjs.com/package/cable_ready
- Repository: https://github.com/stimulusreflex/cable_ready
- Homepage: https://cableready.stimulusreflex.com/
- Issues: https://github.com/stimulusreflex/cable_ready/issues
- npm.io page: https://npm.io/package/cable_ready

## Dependencies (1)

- [morphdom](https://npm.io/package/morphdom.md) 2.6.1

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 5.0.6 (latest) — 2024-12-15
- 5.0.5 — 2024-05-14
- 5.0.4 — 2024-05-10
- 5.0.3 — 2023-11-14
- 5.0.2 — 2023-11-09
- 5.0.1 — 2023-07-07
- 5.0.0 — 2023-04-13
- 5.0.0-rc2 — 2023-03-27
- 5.0.0-rc1 — 2023-03-26
- 5.0.0-pre10 — 2023-02-15
- 5.0.0-pre9 — 2022-04-01
- 5.0.0-pre8 — 2021-11-22
- 5.0.0-pre7 — 2021-10-26
- 5.0.0-pre6 — 2021-10-14
- 5.0.0-pre5 — 2021-10-07
- … 36 more at https://npm.io/package/cable_ready/versions

## README

<p align="center">
  <img src="https://raw.githubusercontent.com/stimulusreflex/cable_ready/main/assets/cable-ready-logo-with-copy.svg" width="360" />
  <h1 align="center">Welcome to CableReady 👋</h1>
  <p align="center">
    <a href="https://rubygems.org/gems/cable_ready">
      <img src="https://img.shields.io/gem/v/cable_ready.svg?color=red" />
    </a>
    <a href="https://www.npmjs.com/package/cable_ready">
      <img src="https://img.shields.io/npm/v/cable_ready.svg?color=blue" />
    </a>
    <a href="https://www.npmjs.com/package/cable_ready">
      <img alt="downloads" src="https://img.shields.io/npm/dm/cable_ready.svg?color=blue" target="_blank" />
    </a>
    <a href="https://github.com/stimulusreflex/cable_ready/blob/main/LICENSE">
      <img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-brightgreen.svg" target="_blank" />
    </a>
    <a href="https://cableready.stimulusreflex.com" target="_blank">
      <img alt="Documentation" src="https://img.shields.io/badge/documentation-yes-brightgreen.svg" />
    </a>
    <br />
    <a href="#badge">
      <img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg">
    </a>
    <a href="https://github.com/testdouble/standard" target="_blank">
      <img alt="Ruby Code Style" src="https://img.shields.io/badge/Ruby_Code_Style-standard-brightgreen.svg" />
    </a>
    <a href="https://github.com/sheerun/prettier-standard" target="_blank">
      <img alt="JavaScript Code Style" src="https://img.shields.io/badge/JavaScript_Code_Style-prettier_standard-ff69b4.svg" />
    </a>
    <br />
    <a target="_blank" rel="noopener noreferrer" href="https://github.com/stimulusreflex/cable_ready/actions/workflows/prettier-standard.yml">
      <img src="https://github.com/stimulusreflex/cable_ready/workflows/Prettier-Standard/badge.svg" alt="Prettier-Standard" style="max-width:100%;">
    </a>
    <a target="_blank" rel="noopener noreferrer" href="https://github.com/stimulusreflex/cable_ready/actions/workflows/standardrb.yml">
      <img src="https://github.com/stimulusreflex/cable_ready/workflows/StandardRB/badge.svg" alt="StandardRB" style="max-width:100%;">
    </a>
    <a target="_blank" rel="noopener noreferrer" href="https://github.com/stimulusreflex/cable_ready/actions/workflows/tests.yml">
      <img src="https://github.com/stimulusreflex/cable_ready/workflows/Tests/badge.svg" alt="Tests" style="max-width:100%;">
    </a>
  </p>
</p>
<br />

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](http://guides.rubyonrails.org/action_cable_overview.html)
to learn more about ActionCable before proceeding.

## 📚 Docs

- [Official Documentation](https://cableready.stimulusreflex.com)
- [Documentation Source Code](https://github.com/stimulusreflex/cable_ready/tree/main/docs)

## 💙 Community

- [Discord](https://discord.gg/stimulus-reflex) - primary support channel

## 🚀 Install

### Rubygem

```sh
bundle add cable_ready
```

### JavaScript

There are a few ways to install the CableReady JavaScript client, depending on your application setup.

#### ESBuild / Webpacker

```sh
yarn add cable_ready
```

#### Import maps:

```ruby
# config/importmap.rb

# ...

pin 'cable_ready', to: 'cable_ready.js', preload: true
```

#### Rails Asset pipeline (Sprockets):

```html+erb
<!-- app/views/layouts/application.html.erb -->

<%= javascript_include_tag "cable_ready.umd.js", "data-turbo-track": "reload" %>
```

Checkout the [documentation](https://cableready.stimulusreflex.com) to continue!

## 🙏 Contributing

### Code of Conduct

Everyone interacting with CableReady is expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md)

### Coding Standards

This project uses [Standard](https://github.com/testdouble/standard)
and [prettier-standard](https://github.com/sheerun/prettier-standard) to minimize bike shedding related to code formatting.

Please run `./bin/standardize` prior submitting pull requests.

### 📦 Releasing

1. Make sure that you run `yarn` and `bundle` to pick up the latest.
1. Bump version number at `lib/cable_ready/version.rb`. Pre-release versions use `.preN`
1. Run `rake build` and `yarn build`
1. Commit and push changes to GitHub
1. Run `rake release`
1. Run `yarn publish --no-git-tag-version`
1. Yarn will prompt you for the new version. Pre-release versions use `-preN`
1. Commit and push changes to GitHub
1. Create a new release on GitHub ([here](https://github.com/stimulusreflex/cable_ready/releases)) and generate the changelog for the stable release for it

## 📝 License

CableReady is released under the [MIT License](LICENSE.txt).

---
_Source: https://npm.io/package/cable_ready · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
