RuboCop::CableReady

CableReady-specific analysis for your projects, as an extension to RuboCop.

Installation

Add this line to your application's Gemfile:

gem 'rubocop-cable_ready'

And then execute:

bundle install

Or install it yourself as:

gem install rubocop-cable_ready

Usage

You need to tell RuboCop to load the CableReady extension. There are threeways to do this:

RuboCop configuration file

Put this into your .rubocop.yml.

require: rubocop-cable_ready

Alternatively, use the following array notation when specifying multiple extensions.

require:
  - rubocop-other-extension
  - rubocop-cable_ready

Now you can run rubocop and it will automatically load the RuboCop CableReady cops together with the standard cops.

Command line

rubocop --require rubocop-cable_ready

Rake task

RuboCop::RakeTask.new do |task|
  task.requires << 'rubocop-cable_ready'
end

Cops

CableReady/ApplicationRecordEnableUpdates

Enabled by default Supports autocorrection Include Version Added Version Changed
true No app/models/**/*.rb 0.2.0 0.2.0

The enable_cable_ready_updates class method shouldn't be called in ApplicationRecord. Instead call enable_cable_ready_updates in every model you want to track and broadcast updates.

Examples
# bad

class ApplicationRecord < ActiveRecord::Base
  include CableReady::Updatable

  enable_cable_ready_updates on: :update
end


# good

class Post < ApplicationRecord
  include CableReady::Updatable

  enable_cable_ready_updates on: :update
end


# good

class ApplicationRecord < ActiveRecord::Base
  include CableReady::Updatable
end

class Post < ApplicationRecord
  enable_cable_ready_updates on: :update
end

CableReady/BroadcasterControllerAction

Enabled by default Supports autocorrection Include Version Added Version Changed
false No app/controllers/**/*.rb 0.2.0 0.2.0

It's discouraged to broadcast CableReady broadcasts from Controller actions.

Examples
# bad

def create
  cable_ready[UserChannel]
    .append(selector: "...", html: "...")
    .broadcast
end


# good

def create
end

CableReady/UnusedCableReadyCall

Enabled by default Supports autocorrection Include Version Added Version Changed
true No app/**/*.rb 0.1.0 0.1.0

The cable_ready method shouldn't be called without being followed by an operation.

Examples
# bad

cable_ready


# good

cable_ready.inner_html(...)

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/marcoroth/rubocop-cable_ready. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the RuboCop::CableReady project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.