Class: EagerEye::Detectors::SerializerNesting
- Includes:
- Concerns::ClassInspector
- Defined in:
- lib/eager_eye/detectors/serializer_nesting.rb
Constant Summary collapse
- SERIALIZER_PATTERNS =
%w[ActiveModel::Serializer ActiveModelSerializers::Model Blueprinter::Base Alba::Resource].freeze
- ATTRIBUTE_METHODS =
%i[attribute field attributes].freeze
- OBJECT_REFS =
%i[object record resource].freeze
Constants included from Concerns::ClassInspector
Concerns::ClassInspector::ACTIVE_STORAGE_METHODS, Concerns::ClassInspector::HAS_MANY_ASSOCIATIONS
Class Method Summary collapse
Instance Method Summary collapse
-
#detect(ast, file_path, association_names = Set.new, method_queries = {}, serializer_usage = nil, all_columns = Set.new) ⇒ Object
rubocop:disable Metrics/ParameterLists.
Methods inherited from Base
Class Method Details
.detector_name ⇒ Object
14 15 16 |
# File 'lib/eager_eye/detectors/serializer_nesting.rb', line 14 def self.detector_name :serializer_nesting end |
Instance Method Details
#detect(ast, file_path, association_names = Set.new, method_queries = {}, serializer_usage = nil, all_columns = Set.new) ⇒ Object
rubocop:disable Metrics/ParameterLists
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/eager_eye/detectors/serializer_nesting.rb', line 18 def detect(ast, file_path, association_names = Set.new, method_queries = {}, serializer_usage = nil, # rubocop:disable Metrics/ParameterLists all_columns = Set.new) return [] unless ast @dynamic_associations = association_names @method_queries = method_queries @serializer_usage = serializer_usage @all_columns = all_columns issues = [] traverse_ast(ast) do |node| next unless node.type == :class && serializer_class?(node) find_nested_associations(node, file_path, issues) end issues end |