ForestAdmin/forest-rails

View on GitHub

Showing 140 of 140 total issues

Method search_param has a Cognitive Complexity of 89 (exceeds 5 allowed). Consider refactoring.
Open

    def search_param
      if @search
        conditions = []

        @resource.columns.each_with_index do |column, index|
Severity: Minor
Found in app/services/forest_liana/search_query_builder.rb - About 1 day 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 75 (exceeds 5 allowed). Consider refactoring.
Open

    def serializer_for(active_record_class)
      serializer = Class.new {
        include ForestAdmin::JSONAPI::Serializer

        def self_link
Severity: Minor
Found in app/serializers/forest_liana/serializer_factory.rb - About 1 day 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 initialize has a Cognitive Complexity of 67 (exceeds 5 allowed). Consider refactoring.
Open

    def initialize filename, collections, meta
      @filename = filename
      @meta = meta

      # NOTICE: Remove unecessary keys
Severity: Minor
Found in lib/forest_liana/schema_file_updater.rb - About 1 day 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

File bootstrapper.rb has 600 lines of code (exceeds 250 allowed). Consider refactoring.
Open

require_relative 'schema_file_updater'
require_relative 'version'

module ForestLiana
  class Bootstrapper
Severity: Major
Found in lib/forest_liana/bootstrapper.rb - About 1 day to fix

    Method serializer_for has 212 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        def serializer_for(active_record_class)
          serializer = Class.new {
            include ForestAdmin::JSONAPI::Serializer
    
            def self_link
    Severity: Major
    Found in app/serializers/forest_liana/serializer_factory.rb - About 1 day to fix

      Method init_properties_with_default has a Cognitive Complexity of 53 (exceeds 5 allowed). Consider refactoring.
      Open

        def init_properties_with_default
          @name_old ||= @name
          @is_virtual ||= false
          @icon ||= nil
          @is_read_only ||= false
      Severity: Minor
      Found in app/models/forest_liana/model/collection.rb - About 1 day 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 initialize has a Cognitive Complexity of 48 (exceeds 5 allowed). Consider refactoring.
      Open

        def initialize(attributes = {})
          if attributes.key?(:global)
            FOREST_LOGGER.error "REMOVED OPTION: The support for Smart Action \"global\" option is now " \
              "removed. Please set \"type: 'global'\" instead of \"global: true\" for the " \
              "\"#{attributes[:name]}\" Smart Action."
      Severity: Minor
      Found in app/models/forest_liana/model/action.rb - About 7 hrs 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

      File schema_adapter.rb has 449 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      module ForestLiana
        class SchemaAdapter
          def initialize(model)
            @model = model
          end
      Severity: Minor
      Found in app/services/forest_liana/schema_adapter.rb - About 6 hrs to fix

        Method setup_stripe_integration has 169 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            def setup_stripe_integration(collection_name_and_field)
              collection_name = collection_name_and_field.split('.')[0]
              model_name = ForestLiana.name_for(collection_name.constantize)
              # TODO: Remove once lianas prior to 2.0.0 are not supported anymore.
              model_name_old = ForestLiana.name_old_for(collection_name.constantize)
        Severity: Major
        Found in lib/forest_liana/bootstrapper.rb - About 6 hrs to fix

          Method add_validations has a Cognitive Complexity of 41 (exceeds 5 allowed). Consider refactoring.
          Open

              def add_validations(column_schema, column)
                # NOTICE: Do not consider validations if a before_validation Active Records
                #         Callback is detected.
                if @model._validation_callbacks.map(&:kind).include? :before
                  return column_schema
          Severity: Minor
          Found in app/services/forest_liana/schema_adapter.rb - About 6 hrs 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 perform has a Cognitive Complexity of 38 (exceeds 5 allowed). Consider refactoring.
          Open

              def perform
                raw_query = @params['query'].strip
          
                LiveQueryChecker.new(raw_query, 'Live Query Chart').validate()
          
          
          Severity: Minor
          Found in app/services/forest_liana/query_stat_getter.rb - About 5 hrs 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 field has a Cognitive Complexity of 37 (exceeds 5 allowed). Consider refactoring.
          Open

              def field(name, opts, &block)
                # TODO: Handle empty name
          
                if opts.key?(:isRequired)
                  FOREST_LOGGER.warn "DEPRECATION WARNING: isRequired on field \"#{name}\" is deprecated. Please use is_required."
          Severity: Minor
          Found in lib/forest_liana/collection.rb - About 5 hrs 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 send_apimap has a Cognitive Complexity of 36 (exceeds 5 allowed). Consider refactoring.
          Open

              def send_apimap(with_feedback=false)
                if ForestLiana.env_secret && ForestLiana.env_secret.length != 64
                  FOREST_LOGGER.error "Your env_secret does not seem to be correct. " \
                    "Can you check on Forest that you copied it properly in the " \
                    "forest_liana initializer?"
          Severity: Minor
          Found in lib/forest_liana/bootstrapper.rb - About 5 hrs 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 add_columns has 114 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              def add_columns
                @model.columns.each do |column|
                  unless is_sti_column_of_child_model?(column)
                    field_schema = get_schema_for_column(column)
                    collection.fields << field_schema unless field_schema.nil?
          Severity: Major
          Found in app/services/forest_liana/schema_adapter.rb - About 4 hrs to fix

            File serializer_factory.rb has 348 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            require 'jsonapi-serializers'
            
            module ForestLiana
              class SerializerFactory
            
            
            Severity: Minor
            Found in app/serializers/forest_liana/serializer_factory.rb - About 4 hrs to fix

              Method relationship_related_link has a Cognitive Complexity of 29 (exceeds 5 allowed). Consider refactoring.
              Open

                      def relationship_related_link(attribute_name)
                        ret = {}
              
                        # Has many smart field
                        current = self.has_many_relationships[attribute_name]
              Severity: Minor
              Found in app/serializers/forest_liana/serializer_factory.rb - About 4 hrs 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

              Class Bootstrapper has 33 methods (exceeds 20 allowed). Consider refactoring.
              Open

                class Bootstrapper
                  SCHEMA_FILENAME = File.join(Dir.pwd, '.forestadmin-schema.json')
              
                  def initialize
                    @integration_stripe_valid = false
              Severity: Minor
              Found in lib/forest_liana/bootstrapper.rb - About 4 hrs to fix

                Method pretty_print has a Cognitive Complexity of 28 (exceeds 5 allowed). Consider refactoring.
                Open

                    def pretty_print json, indentation = ""
                      result = ""
                
                      if json.kind_of? Array
                        result << "["
                Severity: Minor
                Found in lib/forest_liana/json_printer.rb - About 4 hrs 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 is_allowed has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
                Open

                    def is_allowed
                      permissions = get_permissions_content
                
                      # NOTICE: check liveQueries permissions
                      if @permission_name === 'liveQueries'
                Severity: Minor
                Found in app/services/forest_liana/permissions_checker.rb - About 3 hrs 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 add_validations has 82 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    def add_validations(column_schema, column)
                      # NOTICE: Do not consider validations if a before_validation Active Records
                      #         Callback is detected.
                      if @model._validation_callbacks.map(&:kind).include? :before
                        return column_schema
                Severity: Major
                Found in app/services/forest_liana/schema_adapter.rb - About 3 hrs to fix
                  Severity
                  Category
                  Status
                  Source
                  Language