Showing 79 of 83 total issues

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

    def parse(&block)
      return to_enum(__method__) unless block_given?

      if @return_headers and @headers and @raw_headers
        headers = Row.new(@headers, @raw_headers, true)
Severity: Minor
Found in lib/csv/parser.rb - About 2 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 parse_quotable_loose has 56 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    def parse_quotable_loose(&block)
      @scanner.keep_start
      @scanner.each_line(@row_separator) do |line|
        if @skip_lines and skip_line?(line)
          @scanner.keep_drop
Severity: Major
Found in lib/csv/parser.rb - About 2 hrs to fix

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

      class Table
        # :call-seq:
        #   CSV::Table.new(array_of_rows, headers = nil) -> csv_table
        #
        # Returns a new \CSV::Table object.
    Severity: Minor
    Found in lib/csv/table.rb - About 2 hrs to fix

      Method generate_line has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
      Open

          def generate_line(row, **options)
            options = {row_sep: InputRecordSeparator.value}.merge(options)
            str = +""
            if options[:encoding]
              str.force_encoding(options[:encoding])
      Severity: Minor
      Found in lib/csv.rb - About 2 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 inspect has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
      Open

        def inspect
          str = ["#<", self.class.to_s, " io_type:"]
          # show type of wrapped IO
          if    @io == $stdout then str << "$stdout"
          elsif @io == $stdin  then str << "$stdin"
      Severity: Minor
      Found in lib/csv.rb - About 2 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_scanner has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
      Open

            def build_scanner
              string = nil
              if @samples.empty? and @input.is_a?(StringIO)
                string = @input.read
              elsif @samples.size == 1 and
      Severity: Minor
      Found in lib/csv/parser.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 open has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
      Open

          def open(filename, mode="r", **options)
            # wrap a File opened with the remaining +args+ with no newline
            # decorator
            file_opts = {}
            have_encoding_options = (options.key?(:encoding) or
      Severity: Minor
      Found in lib/csv.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 each_line has 42 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

            def each_line(row_separator)
              return enum_for(__method__, row_separator) unless block_given?
              buffer = nil
              input = @scanner.rest
              position = @scanner.pos
      Severity: Minor
      Found in lib/csv/parser.rb - About 1 hr to fix

        Method prepare_separators has 40 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            def prepare_separators
              column_separator = @options[:column_separator]
              @column_separator = column_separator.to_s.encode(@encoding)
              if @column_separator.size < 1
                message = ":col_sep must be 1 or more characters: "
        Severity: Minor
        Found in lib/csv/parser.rb - About 1 hr to fix

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

                def keep_back
                  # trace(__method__, :start)
                  scanner, start, buffer = @keeps.pop
                  if buffer
                    # trace(__method__, :rescan, start, buffer)
          Severity: Minor
          Found in lib/csv/parser.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 []= has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
          Open

              def []=(*args)
                value = args.pop
          
                if args.first.is_a? Integer
                  if @row[args.first].nil?  # extending past the end with index
          Severity: Minor
          Found in lib/csv/row.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 open has 38 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              def open(filename, mode="r", **options)
                # wrap a File opened with the remaining +args+ with no newline
                # decorator
                file_opts = {}
                have_encoding_options = (options.key?(:encoding) or
          Severity: Minor
          Found in lib/csv.rb - About 1 hr to fix

            Method parse_quoted_column_value has 37 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                def parse_quoted_column_value
                  quotes = @scanner.scan_all(@quotes)
                  return nil unless quotes
            
                  @quoted_column_value = true
            Severity: Minor
            Found in lib/csv/parser.rb - About 1 hr to fix

              Method parse has 36 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  def parse(&block)
                    return to_enum(__method__) unless block_given?
              
                    if @return_headers and @headers and @raw_headers
                      headers = Row.new(@headers, @raw_headers, true)
              Severity: Minor
              Found in lib/csv/parser.rb - About 1 hr to fix

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

                    def delete_if(&block)
                      return enum_for(__method__) { @mode == :row or @mode == :col_or_row ? size : headers.size } unless block_given?
                
                      if @mode == :row or @mode == :col_or_row  # by index
                        @table.delete_if(&block)
                Severity: Minor
                Found in lib/csv/table.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 delete has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
                Open

                    def delete(*indexes_or_headers)
                      if indexes_or_headers.empty?
                        raise ArgumentError, "wrong number of arguments (given 0, expected 1+)"
                      end
                      deleted_values = indexes_or_headers.map do |index_or_header|
                Severity: Minor
                Found in lib/csv/table.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 filter has 34 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    def filter(input=nil, output=nil, **options)
                      # parse options for input, output, or both
                      in_options, out_options = Hash.new, {row_sep: InputRecordSeparator.value}
                      options.each do |key, value|
                        case key
                Severity: Minor
                Found in lib/csv.rb - About 1 hr to fix

                  Method read_chunk has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                        def read_chunk
                          return false if @last_scanner
                  
                          adjust_last_keep
                  
                  
                  Severity: Minor
                  Found in lib/csv/parser.rb - About 1 hr to fix

                    Method filter has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
                    Open

                        def filter(input=nil, output=nil, **options)
                          # parse options for input, output, or both
                          in_options, out_options = Hash.new, {row_sep: InputRecordSeparator.value}
                          options.each do |key, value|
                            case key
                    Severity: Minor
                    Found in lib/csv.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 emit_row has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
                    Open

                        def emit_row(row, quoted_fields, &block)
                          @lineno += 1
                    
                          raw_row = row
                          if @use_headers
                    Severity: Minor
                    Found in lib/csv/parser.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

                    Severity
                    Category
                    Status
                    Source
                    Language