discourse/discourse

View on GitHub

Showing 1,333 of 1,608 total issues

Method hijack has a Cognitive Complexity of 52 (exceeds 5 allowed). Consider refactoring.
Open

  def hijack(&blk)
    controller_class = self.class

    if hijack = request.env['rack.hijack']

Severity: Minor
Found in lib/hijack.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

Class UsersController has 56 methods (exceeds 20 allowed). Consider refactoring.
Open

class UsersController < ApplicationController

  skip_before_action :authorize_mini_profiler, only: [:avatar]

  requires_login only: [
Severity: Major
Found in app/controllers/users_controller.rb - About 1 day to fix

    Class TopicQuery has 56 methods (exceeds 20 allowed). Consider refactoring.
    Open

    class TopicQuery
      PG_MAX_INT ||= 2147483647
    
      def self.validators
        @validators ||= begin
    Severity: Major
    Found in lib/topic_query.rb - About 1 day to fix

      Class Guardian has 56 methods (exceeds 20 allowed). Consider refactoring.
      Open

      class Guardian
        include EnsureMagic
        include CategoryGuardian
        include PostGuardian
        include TopicGuardian
      Severity: Major
      Found in lib/guardian.rb - About 1 day to fix

        Method resolve has a Cognitive Complexity of 51 (exceeds 5 allowed). Consider refactoring.
        Open

          def resolve
            if @uri && @uri.port == 80 && FinalDestination.is_https_domain?(@uri.hostname)
              @uri.scheme = "https"
              @uri = URI(@uri.to_s)
            end
        Severity: Minor
        Found in lib/final_destination.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

        Method build has 196 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            def build
              return @wizard unless SiteSetting.wizard_enabled? && @wizard.user.try(:staff?)
        
              @wizard.append_step('locale') do |step|
                step.banner = "welcome.png"
        Severity: Major
        Found in lib/wizard/builder.rb - About 7 hrs to fix

          Class StaffActionLogger has 55 methods (exceeds 20 allowed). Consider refactoring.
          Open

          class StaffActionLogger
          
            def self.base_attrs
              [:topic_id, :post_id, :context, :subject, :ip_address, :previous_value, :new_value]
            end
          Severity: Major
          Found in app/services/staff_action_logger.rb - About 7 hrs to fix

            File post_action.rb has 491 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            require_dependency 'rate_limiter'
            require_dependency 'system_message'
            
            class PostAction < ActiveRecord::Base
              class AlreadyActed < StandardError; end
            Severity: Minor
            Found in app/models/post_action.rb - About 7 hrs to fix

              File topic_view.rb has 490 lines of code (exceeds 250 allowed). Consider refactoring.
              Open

              require_dependency 'guardian'
              require_dependency 'topic_query'
              require_dependency 'filter_best_posts'
              require_dependency 'gaps'
              
              
              Severity: Minor
              Found in lib/topic_view.rb - About 7 hrs to fix

                Method execute has a Cognitive Complexity of 50 (exceeds 5 allowed). Consider refactoring.
                Open

                    def execute(args)
                      return unless SiteSetting.download_remote_images_to_local?
                
                      post_id = args[:post_id]
                      raise Discourse::InvalidParameters.new(:post_id) unless post_id.present?
                Severity: Minor
                Found in app/jobs/regular/pull_hotlinked_images.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

                Method voters has a Cognitive Complexity of 50 (exceeds 5 allowed). Consider refactoring.
                Open

                    def voters
                      post_id = params.require(:post_id)
                      poll_name = params.require(:poll_name)
                
                      post = Post.find_by(id: post_id)
                Severity: Minor
                Found in plugins/poll/plugin.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 staff_action_logger.rb has 487 lines of code (exceeds 250 allowed). Consider refactoring.
                Open

                require_dependency 'staff_message_format'
                
                # Responsible for logging the actions of admins and moderators.
                class StaffActionLogger
                
                
                Severity: Minor
                Found in app/services/staff_action_logger.rb - About 7 hrs to fix

                  Class Category has 54 methods (exceeds 20 allowed). Consider refactoring.
                  Open

                  class Category < ActiveRecord::Base
                    include Searchable
                    include Positionable
                    include HasCustomFields
                    include CategoryHashtag
                  Severity: Major
                  Found in app/models/category.rb - About 7 hrs to fix

                    File instance.rb has 485 lines of code (exceeds 250 allowed). Consider refactoring.
                    Open

                    require 'digest/sha1'
                    require 'fileutils'
                    require_dependency 'plugin/metadata'
                    require_dependency 'auth'
                    
                    
                    Severity: Minor
                    Found in lib/plugin/instance.rb - About 7 hrs to fix

                      File discourse.rb has 484 lines of code (exceeds 250 allowed). Consider refactoring.
                      Open

                      require 'cache'
                      require 'open3'
                      require_dependency 'route_format'
                      require_dependency 'plugin/instance'
                      require_dependency 'auth/default_current_user_provider'
                      Severity: Minor
                      Found in lib/discourse.rb - About 7 hrs to fix

                        Class Report has 52 methods (exceeds 20 allowed). Consider refactoring.
                        Open

                        class Report
                          # Change this line each time report format change
                          # and you want to ensure cache is reset
                          SCHEMA_VERSION = 3
                        
                        
                        Severity: Major
                        Found in app/models/report.rb - About 7 hrs to fix

                          File category.rb has 471 lines of code (exceeds 250 allowed). Consider refactoring.
                          Open

                          require_dependency 'distributed_cache'
                          
                          class Category < ActiveRecord::Base
                            include Searchable
                            include Positionable
                          Severity: Minor
                          Found in app/models/category.rb - About 7 hrs to fix

                            File users_controller.rb has 469 lines of code (exceeds 250 allowed). Consider refactoring.
                            Open

                            require_dependency 'user_destroyer'
                            require_dependency 'admin_user_index_query'
                            require_dependency 'admin_confirmation'
                            
                            class Admin::UsersController < Admin::AdminController
                            Severity: Minor
                            Found in app/controllers/admin/users_controller.rb - About 7 hrs to fix

                              Method create has a Cognitive Complexity of 47 (exceeds 5 allowed). Consider refactoring.
                              Open

                                def create
                                  params.require(:email)
                                  params.permit(:user_fields)
                              
                                  unless SiteSetting.allow_new_registrations
                              Severity: Minor
                              Found in app/controllers/users_controller.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

                              Method create_from has a Cognitive Complexity of 46 (exceeds 5 allowed). Consider refactoring.
                              Open

                                def self.create_from(args = {})
                                  url = args[:url][0...TopicLink.max_url_length]
                                  return nil if url.blank?
                              
                                  uri = begin
                              Severity: Minor
                              Found in app/models/topic_link_click.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

                              Severity
                              Category
                              Status
                              Source
                              Language