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 installOr install it yourself as:
gem install rubocop-cable_readyUsage
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_readyAlternatively, use the following array notation when specifying multiple extensions.
require:
- rubocop-other-extension
- rubocop-cable_readyNow you can run rubocop and it will automatically load the RuboCop CableReady cops together with the standard cops.
Command line
rubocop --require rubocop-cable_readyRake task
RuboCop::RakeTask.new do |task|
task.requires << 'rubocop-cable_ready'
endCops
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
endCableReady/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
endCableReady/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.