18F/e-manifest

View on GitHub
tours/tour_helper.rb

Summary

Maintainability
A
0 mins
Test Coverage

Assignment Branch Condition size for sign_manifest is too high. [18.11/15]
Open

  def sign_manifest(token_response, manifest)
    uri = manifest[:uri] + '/signature'
    sign_request = {
      token: token_response.body['token'],
      activity_id: token_response.body['activity_id'],
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric

Assignment Branch Condition size for create_manifest is too high. [16.52/15]
Open

  def create_manifest
    manifest_content = example_manifest_json
    response = post_json(emanifest_api_url("/manifests"), manifest_content.to_json)
    if response.status == 201
      uri = response.body['location']
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric

Use sample instead of shuffle.first.
Open

    users.shuffle.first
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop is used to identify usages of shuffle.first, shuffle.last and shuffle[] and change them to use sample instead.

Example:

# bad
[1, 2, 3].shuffle.first
[1, 2, 3].shuffle.first(2)
[1, 2, 3].shuffle.last
[1, 2, 3].shuffle[2]
[1, 2, 3].shuffle[0, 2]    # sample(2) will do the same
[1, 2, 3].shuffle[0..2]    # sample(3) will do the same
[1, 2, 3].shuffle(random: Random.new).first

# good
[1, 2, 3].shuffle
[1, 2, 3].sample
[1, 2, 3].sample(3)
[1, 2, 3].shuffle[1, 3]    # sample(3) might return a longer Array
[1, 2, 3].shuffle[1..3]    # sample(3) might return a longer Array
[1, 2, 3].shuffle[foo, bar]
[1, 2, 3].shuffle(random: Random.new)

Line is too long. [83/80]
Open

    response = post_json(emanifest_api_url("/manifests"), manifest_content.to_json)
Severity: Minor
Found in tours/tour_helper.rb by rubocop

Line is too long. [86/80]
Open

    manifest_content['generator']['manifest_tracking_number'] = random_tracking_number
Severity: Minor
Found in tours/tour_helper.rb by rubocop

Do not prefix reader method names with get_.
Open

  def get_random_cdx_user
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop makes sure that accessor methods are named properly.

Example:

# bad
def set_attribute(value)
end

# good
def attribute=(value)
end

# bad
def get_attribute
end

# good
def attribute
end

Redundant curly braces around a hash parameter.
Open

    Faraday.new({ headers: { 'Accept' => 'application/json' } }) do |faraday|
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop checks for braces around the last parameter in a method call if the last parameter is a hash. It supports braces, no_braces and context_dependent styles.

Example: EnforcedStyle: braces

# The `braces` style enforces braces around all method
# parameters that are hashes.

# bad
some_method(x, y, a: 1, b: 2)

# good
some_method(x, y, {a: 1, b: 2})

Example: EnforcedStyle: no_braces (default)

# The `no_braces` style checks that the last parameter doesn't
# have braces around it.

# bad
some_method(x, y, {a: 1, b: 2})

# good
some_method(x, y, a: 1, b: 2)

Example: EnforcedStyle: context_dependent

# The `context_dependent` style checks that the last parameter
# doesn't have braces around it, but requires braces if the
# second to last parameter is also a hash literal.

# bad
some_method(x, y, {a: 1, b: 2})
some_method(x, y, {a: 1, b: 2}, a: 1, b: 2)

# good
some_method(x, y, a: 1, b: 2)
some_method(x, y, {a: 1, b: 2}, {a: 1, b: 2})

Use %r around regular expression.
Open

      { status: response.status, uri: uri, content: manifest_content, uuid: uri.gsub(/^.+\//, ''), tracking_number: tracking_number }
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop enforces using // or %r around regular expressions.

Example: EnforcedStyle: slashes (default)

# bad
snake_case = %r{^[\dA-Z_]+$}

# bad
regex = %r{
  foo
  (bar)
  (baz)
}x

# good
snake_case = /^[\dA-Z_]+$/

# good
regex = /
  foo
  (bar)
  (baz)
/x

Example: EnforcedStyle: percent_r

# bad
snake_case = /^[\dA-Z_]+$/

# bad
regex = /
  foo
  (bar)
  (baz)
/x

# good
snake_case = %r{^[\dA-Z_]+$}

# good
regex = %r{
  foo
  (bar)
  (baz)
}x

Example: EnforcedStyle: mixed

# bad
snake_case = %r{^[\dA-Z_]+$}

# bad
regex = /
  foo
  (bar)
  (baz)
/x

# good
snake_case = /^[\dA-Z_]+$/

# good
regex = %r{
  foo
  (bar)
  (baz)
}x

Example: AllowInnerSlashes: false (default)

# If `false`, the cop will always recommend using `%r` if one or more
# slashes are found in the regexp string.

# bad
x =~ /home\//

# good
x =~ %r{home/}

Example: AllowInnerSlashes: true

# good
x =~ /home\//

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

    response = post_json(emanifest_api_url("/manifests"), manifest_content.to_json)
Severity: Minor
Found in tours/tour_helper.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

    post_json(emanifest_api_url("/tokens"), token_request.to_json)
Severity: Minor
Found in tours/tour_helper.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"

Line is too long. [82/80]
Open

      answer: lookup_cdx_answer(token_response.body['question']['question_text']),
Severity: Minor
Found in tours/tour_helper.rb by rubocop

Missing top-level module documentation comment.
Open

module TourHelper
Severity: Minor
Found in tours/tour_helper.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

Unused method argument - manifest. If it's necessary, use _ or _manifest as an argument name to indicate that it won't be used. You can also write as authenticate_manifest(*) if you want the method to accept any arguments but don't care about them.
Open

  def authenticate_manifest(manifest)
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop checks for unused method arguments.

Example:

# bad

def some_method(used, unused, _unused_but_allowed)
  puts used
end

Example:

# good

def some_method(used, _unused, _unused_but_allowed)
  puts used
end

Line is too long. [133/80]
Open

      { status: response.status, uri: uri, content: manifest_content, uuid: uri.gsub(/^.+\//, ''), tracking_number: tracking_number }
Severity: Minor
Found in tours/tour_helper.rb by rubocop

Avoid comma after the last item of a hash.
Open

      user_id: token_response.body['user_id'],
Severity: Minor
Found in tours/tour_helper.rb by rubocop

This cop checks for trailing comma in array and hash literals.

Example: EnforcedStyleForMultiline: consistent_comma

# bad
a = [1, 2,]

# good
a = [
  1, 2,
  3,
]

# good
a = [
  1,
  2,
]

Example: EnforcedStyleForMultiline: comma

# bad
a = [1, 2,]

# good
a = [
  1,
  2,
]

Example: EnforcedStyleForMultiline: no_comma (default)

# bad
a = [1, 2,]

# good
a = [
  1,
  2
]

There are no issues that match your filters.

Category
Status