18F/e-manifest

View on GitHub
app/search/query_dsl.rb

Summary

Maintainability
A
2 hrs
Test Coverage

Class has too many lines. [167/100]
Open

  class QueryDSL
    include Elasticsearch::DSL

    MAX_RESULTS = 100

Severity: Minor
Found in app/search/query_dsl.rb by rubocop

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

Class QueryDSL has 25 methods (exceeds 20 allowed). Consider refactoring.
Open

  class QueryDSL
    include Elasticsearch::DSL

    MAX_RESULTS = 100

Severity: Minor
Found in app/search/query_dsl.rb - About 2 hrs to fix

    Method has too many lines. [11/10]
    Open

        def build_filters
          bools = []
          if apply_authz?
            bools.push authz_filter
          end
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    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.

    Favor modifier if usage when having a single-line body. Another good alternative is the usage of control flow &&/||.
    Open

          if apply_authz?
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Checks for if and unless statements that would fit on one line if written as a modifier if/unless. The maximum line length is configured in the Metrics/LineLength cop.

    Example:

    # bad
    if condition
      do_stuff(bar)
    end
    
    unless qux.empty?
      Foo.do_something
    end
    
    # good
    do_stuff(bar) if condition
    Foo.do_something unless qux.empty?

    Favor modifier if usage when having a single-line body. Another good alternative is the usage of control flow &&/||.
    Open

          if apply_public_filter?
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Checks for if and unless statements that would fit on one line if written as a modifier if/unless. The maximum line length is configured in the Metrics/LineLength cop.

    Example:

    # bad
    if condition
      do_stuff(bar)
    end
    
    unless qux.empty?
      Foo.do_something
    end
    
    # good
    do_stuff(bar) if condition
    Foo.do_something unless qux.empty?

    Space missing to the left of {.
    Open

            @dsl.sort(params[:sort].map{ |pair| [pair.split(':')].to_h })
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Checks that block braces have or don't have a space before the opening brace depending on configuration.

    Example:

    # bad
    foo.map{ |a|
      a.bar.to_s
    }
    
    # good
    foo.map { |a|
      a.bar.to_s
    }

    Use the return of the conditional for variable assignment and comparison.
    Open

          if @size
            @dsl.size = @size
          elsif params[:size]
            @dsl.size = params[:size].to_i
          else
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Useless assignment to variable - searchdsl.
    Open

          searchdsl = self
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    This cop checks for every useless assignment to local variable in every scope. The basic idea for this cop was from the warning of ruby -cw:

    assigned but unused variable - foo

    Currently this cop has advanced logic that detects unreferenced reassignments and properly handles varied cases such as branch, loop, rescue, ensure, etc.

    Example:

    # bad
    
    def some_method
      some_var = 1
      do_something
    end

    Example:

    # good
    
    def some_method
      some_var = 1
      do_something(some_var)
    end

    Ambiguous block operator. Parenthesize the method arguments if it's surely a block operator, or add a whitespace to the right of the & if it should be a binary AND.
    Open

                should &filter_block
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    This cop checks for ambiguous operators in the first argument of a method invocation without parentheses.

    Example:

    # bad
    
    # The `*` is interpreted as a splat operator but it could possibly be
    # a `*` method invocation (i.e. `do_something.*(some_array)`).
    do_something *some_array

    Example:

    # good
    
    # With parentheses, there's no ambiguity.
    do_something(*some_array)

    Use the return of the conditional for variable assignment and comparison.
    Open

          if @from
            @dsl.from = @from
          elsif params[:from]
            @dsl.from = params[:from].to_i
          else
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Prefer the use of the nil? predicate.
    Open

          if user == nil
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    This cop checks for comparison of something with nil using ==.

    Example:

    # bad
    if x == nil
    end
    
    # good
    if x.nil?
    end

    Prefer single-quoted strings when you don't need string interpolation or special symbols.
    Open

          params[:operator] || "and"
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Checks if uses of quotes match the configured preference.

    Example: EnforcedStyle: single_quotes (default)

    # bad
    "No special symbols"
    "No string interpolation"
    "Just text"
    
    # good
    'No special symbols'
    'No string interpolation'
    'Just text'
    "Wait! What's #{this}!"

    Example: EnforcedStyle: double_quotes

    # bad
    'Just some text'
    'No special chars or interpolation'
    
    # good
    "Just some text"
    "No special chars or interpolation"
    "Every string in #{project} uses double_quotes"

    Prefer single-quoted strings when you don't need string interpolation or special symbols.
    Open

            clauses.map { |c| "(#{c})" }.join(" AND ")
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Checks if uses of quotes match the configured preference.

    Example: EnforcedStyle: single_quotes (default)

    # bad
    "No special symbols"
    "No string interpolation"
    "Just text"
    
    # good
    'No special symbols'
    'No string interpolation'
    'Just text'
    "Wait! What's #{this}!"

    Example: EnforcedStyle: double_quotes

    # bad
    'Just some text'
    'No special chars or interpolation'
    
    # good
    "Just some text"
    "No special chars or interpolation"
    "Every string in #{project} uses double_quotes"

    Prefer single-quoted strings when you don't need string interpolation or special symbols.
    Open

            ""
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Checks if uses of quotes match the configured preference.

    Example: EnforcedStyle: single_quotes (default)

    # bad
    "No special symbols"
    "No string interpolation"
    "Just text"
    
    # good
    'No special symbols'
    'No string interpolation'
    'Just text'
    "Wait! What's #{this}!"

    Example: EnforcedStyle: double_quotes

    # bad
    'Just some text'
    'No special chars or interpolation'
    
    # good
    "Just some text"
    "No special chars or interpolation"
    "Every string in #{project} uses double_quotes"

    Missing top-level class documentation comment.
    Open

      class QueryDSL
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    This cop checks for missing top-level documentation of classes and modules. Classes with no body are exempt from the check and so are namespace modules - modules that have nothing in their bodies except classes, other modules, or constant definitions.

    The documentation requirement is annulled if the class or module has a "#:nodoc:" comment next to it. Likewise, "#:nodoc: all" does the same for all its children.

    Example:

    # bad
    class Person
      # ...
    end
    
    # good
    # Description/Explanation of Person class
    class Person
      # ...
    end

    Use a guard clause instead of wrapping the code inside a conditional expression.
    Open

          if bools.any?
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Use a guard clause instead of wrapping the code inside a conditional expression

    Example:

    # bad
    def test
      if something
        work
      end
    end
    
    # good
    def test
      return unless something
      work
    end
    
    # also good
    def test
      work if something
    end
    
    # bad
    if something
      raise 'exception'
    else
      ok
    end
    
    # good
    raise 'exception' if something
    ok

    Line is too long. [87/80]
    Open

          low_end_range = high_end_range.utc - within_parsed[1].to_i.send(within_parsed[2])
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Use a guard clause instead of wrapping the code inside a conditional expression.
    Open

          if params[:sort]
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Use a guard clause instead of wrapping the code inside a conditional expression

    Example:

    # bad
    def test
      if something
        work
      end
    end
    
    # good
    def test
      return unless something
      work
    end
    
    # also good
    def test
      work if something
    end
    
    # bad
    if something
      raise 'exception'
    else
      ok
    end
    
    # good
    raise 'exception' if something
    ok

    Favor modifier if usage when having a single-line body. Another good alternative is the usage of control flow &&/||.
    Open

          if apply_state_authz?
    Severity: Minor
    Found in app/search/query_dsl.rb by rubocop

    Checks for if and unless statements that would fit on one line if written as a modifier if/unless. The maximum line length is configured in the Metrics/LineLength cop.

    Example:

    # bad
    if condition
      do_stuff(bar)
    end
    
    unless qux.empty?
      Foo.do_something
    end
    
    # good
    do_stuff(bar) if condition
    Foo.do_something unless qux.empty?

    There are no issues that match your filters.

    Category
    Status