Skip to content

pocke/rubocop-rails-order_model_declarative_methods

Repository files navigation

Rubocop::Rails::OrderModelDeclarativeMethods

Gem Version Build Status

Sort declarative methods of Rails model, as an extension to RuboCop.

What's this?

Bad code

class User < ActiveRecord::Base
  belongs_to :plan
  validate :validate_name
  after_create :after_create_1
  has_many :messages
  attr_readonly :email
  after_create :after_create_2
  belongs_to :role
  before_create :set_name
end

Declarative methods are not sorted...

Run rubocop --auto-correct

class User < ActiveRecord::Base
  belongs_to :plan
  belongs_to :role
  has_many :messages

  validate :validate_name
  before_create :set_name
  after_create :after_create_1
  after_create :after_create_2

  attr_readonly :email

end
  • Group by associations, callbacks, and others.
  • Sort by execution order if it's callback method.

Installation

Just install the rubocop-rails-order_model_declarative_methods gem.

gem install rubocop-rails-order_model_declarative_methods

or if you use bundler put this in your Gemfile.

gem 'rubocop-rails-order_model_declarative_methods'

Usage

RuboCop configuration file

Put this into your .rubocop.yml.

require: rubocop-rails-order_model_declarative_methods

Command line

rubocop --require rubocop-rails-order_model_declarative_methods

Rake task

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

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Links

License

These codes are licensed under CC0.

CC0

About

Sort declarative methods of Rails model, as an extension to RuboCop.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published