SpeciesFileGroup/taxonworks

View on GitHub
lib/queries/repository/autocomplete.rb

Summary

Maintainability
A
2 hrs
Test Coverage

Method has too many lines. [31/25]
Open

    def autocomplete
      t = Time.now
      return [] if query_string.blank?
      queries = [
        [autocomplete_exact_id, nil ],

This cop checks if the length of a method exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable.

Method autocomplete has 31 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    def autocomplete
      t = Time.now
      return [] if query_string.blank?
      queries = [
        [autocomplete_exact_id, nil ],
Severity: Minor
Found in lib/queries/repository/autocomplete.rb - About 1 hr to fix

    Method autocomplete has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
    Open

        def autocomplete
          t = Time.now
          return [] if query_string.blank?
          queries = [
            [autocomplete_exact_id, nil ],
    Severity: Minor
    Found in lib/queries/repository/autocomplete.rb - About 55 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

    Do not write to stdout. Use Rails's logger if you want to log.
    Open

          puts t2

    This cop checks for the use of output calls like puts and print

    Example:

    # bad
    puts 'A debug message'
    pp 'A debug message'
    print 'A debug message'
    
    # good
    Rails.logger.debug 'A debug message'

    Do not use Time.now without zone. Use one of Time.zone.now, Time.current, Time.now.in_time_zone, Time.now.utc, Time.now.getlocal, Time.now.xmlschema, Time.now.iso8601, Time.now.jisx0301, Time.now.rfc3339, Time.now.httpdate, Time.now.to_i, Time.now.to_f instead.
    Open

          t = Time.now

    This cop checks for the use of Time methods without zone.

    Built on top of Ruby on Rails style guide (https://github.com/rubocop-hq/rails-style-guide#time) and the article http://danilenko.org/2012/7/6/rails_timezones/

    Two styles are supported for this cop. When EnforcedStyle is 'strict' then only use of Time.zone is allowed.

    When EnforcedStyle is 'flexible' then it's also allowed to use Time.intimezone.

    Example: EnforcedStyle: strict

    # `strict` means that `Time` should be used with `zone`.
    
    # bad
    Time.now
    Time.parse('2015-03-02 19:05:37')
    
    # bad
    Time.current
    Time.at(timestamp).in_time_zone
    
    # good
    Time.zone.now
    Time.zone.parse('2015-03-02 19:05:37')

    Example: EnforcedStyle: flexible (default)

    # `flexible` allows usage of `in_time_zone` instead of `zone`.
    
    # bad
    Time.now
    Time.parse('2015-03-02 19:05:37')
    
    # good
    Time.zone.now
    Time.zone.parse('2015-03-02 19:05:37')
    
    # good
    Time.current
    Time.at(timestamp).in_time_zone

    There are no issues that match your filters.

    Category
    Status