rails-api/active_model_serializers

View on GitHub

Showing 26 of 26 total issues

Class Serializer has 30 methods (exceeds 20 allowed). Consider refactoring.
Open

  class Serializer
    undef_method :select, :display # These IO methods, which are mixed into Kernel,
    # sometimes conflict with attribute names. We don't need these IO methods.

    # @see #serializable_hash for more details on these valid keys.
Severity: Minor
Found in lib/active_model/serializer.rb - About 3 hrs to fix

    Class Serializer has 21 methods (exceeds 20 allowed). Consider refactoring.
    Open

      class Serializer
        UndefinedCacheKey = Class.new(StandardError)
        module Caching
          extend ActiveSupport::Concern
    
    
    Severity: Minor
    Found in lib/active_model/serializer/concerns/caching.rb - About 2 hrs to fix

      Method validate_payload has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
      Open

              def validate_payload(payload)
                unless payload.is_a?(Hash)
                  yield payload, 'Expected hash'
                  return
                end
      Severity: Minor
      Found in lib/active_model_serializers/adapter/json_api/deserialization.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method associations has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
      Open

          def associations(include_directive = ActiveModelSerializers.default_include_directive, include_slice = nil)
            include_slice ||= include_directive
            return Enumerator.new {} unless object
      
            Enumerator.new do |y|
      Severity: Minor
      Found in lib/active_model/serializer.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method data_for has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
      Open

            def data_for(serializer, include_slice)
              data = serializer.fetch(self) do
                resource_object = ResourceIdentifier.new(serializer, instance_options).as_json
                break nil if resource_object.nil?
      
      
      Severity: Minor
      Found in lib/active_model_serializers/adapter/json_api.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method success_document has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
      Open

            def success_document
              is_collection = serializer.respond_to?(:each)
              serializers = is_collection ? serializer : [serializer]
              primary_data, included = resource_objects_for(serializers)
      
      
      Severity: Minor
      Found in lib/active_model_serializers/adapter/json_api.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method data_for_one has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
      Open

              def data_for_one(association)
                if belongs_to_id_on_self?(association)
                  id = parent_serializer.read_attribute_for_serialization(association.reflection.foreign_key)
                  type =
                    if association.polymorphic?
      Severity: Minor
      Found in lib/active_model_serializers/adapter/json_api/relationship.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method parse_relationship has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
      Open

              def parse_relationship(assoc_name, assoc_data, options)
                prefix_key = field_key(assoc_name, options).to_s.singularize
                hash =
                  if assoc_data.is_a?(Array)
                    { "#{prefix_key}_ids".to_sym => assoc_data.map { |ri| ri['id'] } }
      Severity: Minor
      Found in lib/active_model_serializers/adapter/json_api/deserialization.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method deprecate has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

          def deprecate(name, replacement)
            old = "_deprecated_#{name}"
            alias_method old, name
            class_eval do
              define_method(name) do |*args, &block|
      Severity: Minor
      Found in lib/active_model_serializers/deprecate.rb - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method serializable_hash has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

            def serializable_hash(adapter_options, adapter_instance)
              association_serializer = lazy_association.serializer
              return virtual_value if virtual_value
              association_object = association_serializer && association_serializer.object
              return unless association_object
      Severity: Minor
      Found in lib/active_model/serializer/association.rb - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method get_serializer_for has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

          def self.get_serializer_for(klass, namespace = nil)
            return nil unless config.serializer_lookup_enabled
      
            cache_key = ActiveSupport::Cache.expand_cache_key(klass, namespace)
            serializers_cache.fetch_or_store(cache_key) do
      Severity: Minor
      Found in lib/active_model/serializer.rb - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method serialize_object! has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

            def serialize_object!(object)
              if collection?
                if (serializer = instantiate_collection_serializer(object)).nil?
                  # BUG: per #2027, JSON API resource relationships are only id and type, and hence either
                  # *require* a serializer or we need to be a little clever about figuring out the id/type.
      Severity: Minor
      Found in lib/active_model/serializer/lazy_association.rb - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method object_cache_key has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
      Open

            def object_cache_key
              if object.respond_to?(:cache_key_with_version)
                object.cache_key_with_version
              elsif object.respond_to?(:cache_key)
                object.cache_key
      Severity: Minor
      Found in lib/active_model/serializer/concerns/caching.rb - About 35 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method process_relationship has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
      Open

            def process_relationship(serializer, include_slice)
              if serializer.respond_to?(:each)
                serializer.each { |s| process_relationship(s, include_slice) }
                return
              end
      Severity: Minor
      Found in lib/active_model_serializers/adapter/json_api.rb - About 35 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method json_key has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
      Open

            def json_key
              return root if root
              # 1. get from options[:serializer] for empty resource collection
              key = object.empty? &&
                (explicit_serializer_class = options[:serializer]) &&
      Severity: Minor
      Found in lib/active_model/serializer/collection_serializer.rb - About 35 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method object_cache_key has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

              def object_cache_key(serializer, adapter_instance)
                return unless serializer.present? && serializer.object.present?
      
                (serializer.class.cache_enabled? || serializer.class.fragment_cache_enabled?) ? serializer.cache_key(adapter_instance) : nil
              end
      Severity: Minor
      Found in lib/active_model/serializer/concerns/caching.rb - About 25 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method value has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

            def value(serializer, include_slice)
              # NOTE(BF): This method isn't thread-safe because the _reflections class attribute is not thread-safe
              # Therefore, when we build associations from reflections, we dup the entire reflection instance.
              # Better solutions much appreciated!
              @object = serializer.object
      Severity: Minor
      Found in lib/active_model/serializer/reflection.rb - About 25 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method install has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

          def self.install
            # actionpack/lib/action_dispatch/http/mime_types.rb
            Mime::Type.register MEDIA_TYPE, :jsonapi
      
            if Rails::VERSION::MAJOR >= 5
      Severity: Minor
      Found in lib/active_model_serializers/register_jsonapi_renderer.rb - About 25 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method parse has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

              def parse(document, options = {})
                document = document.dup.permit!.to_h if document.is_a?(ActionController::Parameters)
      
                validate_payload(document) do |invalid_document, reason|
                  yield invalid_document, reason if block_given?
      Severity: Minor
      Found in lib/active_model_serializers/adapter/json_api/deserialization.rb - About 25 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method serializer_for has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

          def self.serializer_for(resource_or_class, options = {})
            if resource_or_class.respond_to?(:serializer_class)
              resource_or_class.serializer_class
            elsif resource_or_class.respond_to?(:to_ary)
              config.collection_serializer
      Severity: Minor
      Found in lib/active_model/serializer.rb - About 25 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Severity
      Category
      Status
      Source
      Language