[mrujs]
v1.0.0
Close

Integrate CableCar

CableCar

Mrujs has an official first class plugin for use with CableReady’s JSON serializer called CableCar! If you do not already have CableReady in your package.json, you must add it. Mrujs does not ship CableReady, it is up to you to install it and pass it into the CableCar plugin.

Installing CableReady

bundle add cable_ready -v ">= 5.0.0.pre3"
yarn add cable_ready@latest

Using CableCar

To use the plugin, we start mrujs as normal, but then pass in a configuration defining plugins.

import CableReady from "cable_ready"
import mrujs from "mrujs"
import { CableCar } from "mrujs/plugins"

mrujs.start({
  plugins: [
    new CableCar(CableReady)
  ]
})

Now, any link or form with data-method="<method>" or data-remote="true" will have the following Accept header:

"text/vnd.cable-ready.json, */*"

which means any link or form with data-method="<method>" or data-remote="true" will perform an AJAX request, return JSON if it finds a CableCar response from your Rails server (or any Ruby server which provides a Content-Type: text/vnd.cable-ready.json header), and then automatically perform CableCar operations defined in the JSON payload return.

Note that you can also configure the Accept header, by using the mimeType option:

mrujs.start({
  plugins: [
    new CableCar(CableReady, { mimeType: "application/vnd.cable-ready.json" })
  ]
})

Examples

<a href="/url" data-method="patch">
  I get used by CableCar!
</a>

<form method="POST" data-remote="true">
 <input type="submit" value="Submit me and get CableCar JSON back!">
</form>