Class: Simplabs::Excellent::Checks::Rails::CustomInitializeMethodCheck

Inherits:
Base
  • Object
show all
Defined in:
lib/simplabs/excellent/checks/rails/custom_initialize_method_check.rb

Overview

This check reports ActiveRecord models that define a custom initialize method. Since ActiveRecord does not always call new to create instances, these custom initialize methods might not always be called, which makes the behavior of the application very hard to understand.

Applies to

  • ActiveRecord models

Instance Attribute Summary

Attributes inherited from Base

#interesting_files, #interesting_nodes, #warnings

Instance Method Summary collapse

Methods inherited from Base

#add_warning, #evaluate_node, #warnings_for

Constructor Details

#initializeCustomInitializeMethodCheck

:nodoc:



20
21
22
23
# File 'lib/simplabs/excellent/checks/rails/custom_initialize_method_check.rb', line 20

def initialize #:nodoc:
  super
  @interesting_nodes = [:class]
end

Instance Method Details

#evaluate(context) ⇒ Object

:nodoc:



25
26
27
# File 'lib/simplabs/excellent/checks/rails/custom_initialize_method_check.rb', line 25

def evaluate(context) #:nodoc:
  add_warning(context, '{{class}} defines initialize method.', { :class => context.full_name }) if context.active_record_model? && !context.defines_initializer?
end