Class: RailsBestPractices::Reviews::LawOfDemeterReview
- Inherits:
-
Review
- Object
- CodeAnalyzer::Checker
- Core::Check
- Review
- RailsBestPractices::Reviews::LawOfDemeterReview
- Defined in:
- lib/rails_best_practices/reviews/law_of_demeter_review.rb
Overview
Review to make sure not to avoid the law of demeter.
See the best practice details here rails-bestpractices.com/posts/2010/07/24/the-law-of-demeter/
Implementation:
Review process:
check all method calls to see if there is method call to the association object.
if there is a call node whose receiver is an object of model (compare by name),
and whose message is an association of that model (also compare by name),
and outer the call node, it is also a call node,
then it violate the law of demeter.
Constant Summary collapse
- ASSOCIATION_METHODS =
%w[belongs_to has_one].freeze
Constants inherited from Core::Check
Core::Check::ALL_FILES, Core::Check::CAPFILE, Core::Check::CONFIG_FILES, Core::Check::CONTROLLER_FILES, Core::Check::DEPLOY_FILES, Core::Check::GEMFILE_LOCK, Core::Check::HELPER_FILES, Core::Check::INITIALIZER_FILES, Core::Check::MAILER_FILES, Core::Check::MIGRATION_FILES, Core::Check::MODEL_FILES, Core::Check::PARTIAL_VIEW_FILES, Core::Check::ROUTE_FILES, Core::Check::SCHEMA_FILE, Core::Check::SKIP_FILES, Core::Check::VIEW_FILES
Method Summary
Methods inherited from Review
#model_associations, #model_attributes, #models, #remember_variable_use_count, #reset_variable_use_count, #variable, #variable_use_count
Methods inherited from Core::Check
#add_error, debug, debug?, #errors, #initialize, #is_ignored?, #is_interesting_file?, #method_missing, #parse_file?, #regex_ignored_files, #url, url
Constructor Details
This class inherits a constructor from RailsBestPractices::Core::Check
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class RailsBestPractices::Core::Check