{"id":13747314,"url":"https://github.com/stimulusreflex/cable_ready","last_synced_at":"2025-04-29T14:38:50.012Z","repository":{"id":37441961,"uuid":"91852853","full_name":"stimulusreflex/cable_ready","owner":"stimulusreflex","description":"Use simple commands on the server to control client browsers in real-time","archived":false,"fork":false,"pushed_at":"2025-04-09T13:14:51.000Z","size":11769,"stargazers_count":760,"open_issues_count":11,"forks_count":72,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-22T15:44:03.657Z","etag":null,"topics":["action-cable","hacktoberfest","javascript","real-time","ruby","ruby-on-rails","server-side-rendering"],"latest_commit_sha":null,"homepage":"https://cableready.stimulusreflex.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stimulusreflex.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"hopsoft"}},"created_at":"2017-05-19T23:36:39.000Z","updated_at":"2025-04-22T11:22:04.000Z","dependencies_parsed_at":"2023-07-16T20:20:29.102Z","dependency_job_id":"7f99d8b4-1c2c-4511-9285-7828ce7f6215","html_url":"https://github.com/stimulusreflex/cable_ready","commit_stats":{"total_commits":590,"total_committers":38,"mean_commits":"15.526315789473685","dds":0.6440677966101696,"last_synced_commit":"c6fdcef076aacc3f52045479e3ede4107d50aa8a"},"previous_names":["hopsoft/cable_ready"],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stimulusreflex%2Fcable_ready","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stimulusreflex%2Fcable_ready/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stimulusreflex%2Fcable_ready/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stimulusreflex%2Fcable_ready/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stimulusreflex","download_url":"https://codeload.github.com/stimulusreflex/cable_ready/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251520324,"owners_count":21602476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action-cable","hacktoberfest","javascript","real-time","ruby","ruby-on-rails","server-side-rendering"],"created_at":"2024-08-03T06:01:24.824Z","updated_at":"2025-04-29T14:38:49.931Z","avatar_url":"https://github.com/stimulusreflex.png","language":"Ruby","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/stimulusreflex/cable_ready/main/assets/cable-ready-logo-with-copy.svg\" width=\"360\" /\u003e\n  \u003ch1 align=\"center\"\u003eWelcome to CableReady 👋\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://rubygems.org/gems/cable_ready\"\u003e\n      \u003cimg src=\"https://img.shields.io/gem/v/cable_ready.svg?color=red\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/cable_ready\"\u003e\n      \u003cimg src=\"https://img.shields.io/npm/v/cable_ready.svg?color=blue\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/cable_ready\"\u003e\n      \u003cimg alt=\"downloads\" src=\"https://img.shields.io/npm/dm/cable_ready.svg?color=blue\" target=\"_blank\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/stimulusreflex/cable_ready/blob/main/LICENSE\"\u003e\n      \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT-brightgreen.svg\" target=\"_blank\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://cableready.stimulusreflex.com\" target=\"_blank\"\u003e\n      \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-yes-brightgreen.svg\" /\u003e\n    \u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"#badge\"\u003e\n      \u003cimg alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/testdouble/standard\" target=\"_blank\"\u003e\n      \u003cimg alt=\"Ruby Code Style\" src=\"https://img.shields.io/badge/Ruby_Code_Style-standard-brightgreen.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/sheerun/prettier-standard\" target=\"_blank\"\u003e\n      \u003cimg alt=\"JavaScript Code Style\" src=\"https://img.shields.io/badge/JavaScript_Code_Style-prettier_standard-ff69b4.svg\" /\u003e\n    \u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/stimulusreflex/cable_ready/actions/workflows/prettier-standard.yml\"\u003e\n      \u003cimg src=\"https://github.com/stimulusreflex/cable_ready/workflows/Prettier-Standard/badge.svg\" alt=\"Prettier-Standard\" style=\"max-width:100%;\"\u003e\n    \u003c/a\u003e\n    \u003ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/stimulusreflex/cable_ready/actions/workflows/standardrb.yml\"\u003e\n      \u003cimg src=\"https://github.com/stimulusreflex/cable_ready/workflows/StandardRB/badge.svg\" alt=\"StandardRB\" style=\"max-width:100%;\"\u003e\n    \u003c/a\u003e\n    \u003ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/stimulusreflex/cable_ready/actions/workflows/tests.yml\"\u003e\n      \u003cimg src=\"https://github.com/stimulusreflex/cable_ready/workflows/Tests/badge.svg\" alt=\"Tests\" style=\"max-width:100%;\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\u003cbr /\u003e\n\nCableReady 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.\n\nPlease read the official [ActionCable docs](http://guides.rubyonrails.org/action_cable_overview.html)\nto learn more about ActionCable before proceeding.\n\n## 📚 Docs\n\n- [Official Documentation](https://cableready.stimulusreflex.com)\n- [Documentation Source Code](https://github.com/stimulusreflex/cable_ready/tree/main/docs)\n\n## 💙 Community\n\n- [Discord](https://discord.gg/stimulus-reflex) - primary support channel\n\n## 🚀 Install\n\n### Rubygem\n\n```sh\nbundle add cable_ready\n```\n\n### JavaScript\n\nThere are a few ways to install the CableReady JavaScript client, depending on your application setup.\n\n#### ESBuild / Webpacker\n\n```sh\nyarn add cable_ready\n```\n\n#### Import maps:\n\n```ruby\n# config/importmap.rb\n\n# ...\n\npin 'cable_ready', to: 'cable_ready.js', preload: true\n```\n\n#### Rails Asset pipeline (Sprockets):\n\n```html+erb\n\u003c!-- app/views/layouts/application.html.erb --\u003e\n\n\u003c%= javascript_include_tag \"cable_ready.umd.js\", \"data-turbo-track\": \"reload\" %\u003e\n```\n\nCheckout the [documentation](https://cableready.stimulusreflex.com) to continue!\n\n## 🙏 Contributing\n\n### Code of Conduct\n\nEveryone interacting with CableReady is expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md)\n\n### Coding Standards\n\nThis project uses [Standard](https://github.com/testdouble/standard)\nand [prettier-standard](https://github.com/sheerun/prettier-standard) to minimize bike shedding related to code formatting.\n\nPlease run `./bin/standardize` prior submitting pull requests.\n\n### 📦 Releasing\n\n1. Make sure that you run `yarn` and `bundle` to pick up the latest.\n1. Bump version number at `lib/cable_ready/version.rb`. Pre-release versions use `.preN`\n1. Run `rake build` and `yarn build`\n1. Commit and push changes to GitHub\n1. Run `rake release`\n1. Run `yarn publish --no-git-tag-version`\n1. Yarn will prompt you for the new version. Pre-release versions use `-preN`\n1. Commit and push changes to GitHub\n1. Create a new release on GitHub ([here](https://github.com/stimulusreflex/cable_ready/releases)) and generate the changelog for the stable release for it\n\n## 📝 License\n\nCableReady is released under the [MIT License](LICENSE.txt).\n","funding_links":["https://github.com/sponsors/hopsoft"],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstimulusreflex%2Fcable_ready","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstimulusreflex%2Fcable_ready","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstimulusreflex%2Fcable_ready/lists"}