kenjij/darksky-ruby

View on GitHub

Showing 69 of 69 total issues

Missing top-level class documentation comment.
Open

  class HTTP
Severity: Minor
Found in lib/darksky-ruby/http.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

%q-literals should be delimited by ( and ).
Open

  s.description   = %q{Dark Sky gem written in pure Ruby without any external dependency.}
Severity: Minor
Found in darksky-ruby.gemspec by rubocop

This cop enforces the consistent usage of %-literal delimiters.

Specify the 'default' key to set all preferred delimiters at once. You can continue to specify individual preferred delimiters to override the default.

Example:

# Style/PercentLiteralDelimiters:
#   PreferredDelimiters:
#     default: '[]'
#     '%i':    '()'

# good
%w[alpha beta] + %i(gamma delta)

# bad
%W(alpha #{beta})

# bad
%I(alpha beta)

Use %q only for strings that contain both single quotes and double quotes.
Open

  s.summary       = %q{Pure simple Ruby based Dark Sky API gem}
Severity: Minor
Found in darksky-ruby.gemspec by rubocop

Trailing whitespace detected.
Open

else 
Severity: Minor
Found in bin/darksky by rubocop

Freeze mutable objects assigned to constants.
Open

  DARKSKY_BLOCK_NAMES = [
    :currently, :minutely, :hourly, :daily, :alerts, :flags
  ]
Severity: Minor
Found in lib/darksky-ruby/api.rb by rubocop

This cop checks whether some constant value isn't a mutable literal (e.g. array or hash).

Example:

# bad
CONST = [1, 2, 3]

# good
CONST = [1, 2, 3].freeze

Line is too long. [86/80]
Open

      return operate(__method__, path: path, params: params, body: body, query: query)
Severity: Minor
Found in lib/darksky-ruby/http.rb by rubocop

Line is too long. [86/80]
Open

      return operate(__method__, path: path, params: params, body: body, query: query)
Severity: Minor
Found in lib/darksky-ruby/http.rb by rubocop

Line is too long. [103/80]
Open

      data = redirect(method, uri, params: params, body: body, query: query) if data.class <= URI::HTTP
Severity: Minor
Found in lib/darksky-ruby/http.rb by rubocop

Line is too long. [82/80]
Open

      logger.debug("Body size: #{req.body.length}") if req.request_body_permitted?
Severity: Minor
Found in lib/darksky-ruby/http.rb by rubocop

Missing top-level class documentation comment.
Open

  class NullLogger < Logger
Severity: Minor
Found in lib/darksky-ruby/http.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

Space inside { missing.
Open

api.blocks = {minutely: false, hourly: false, daily: false, alerts: false, flags: false}
Severity: Minor
Found in bin/darksky by rubocop

Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

Example: EnforcedStyle: space

# The `space` style enforces that hash literals have
# surrounding space.

# bad
h = {a: 1, b: 2}

# good
h = { a: 1, b: 2 }

Example: EnforcedStyle: no_space

# The `no_space` style enforces that hash literals have
# no surrounding space.

# bad
h = { a: 1, b: 2 }

# good
h = {a: 1, b: 2}

Example: EnforcedStyle: compact

# The `compact` style normally requires a space inside
# hash braces, with the exception that successive left
# braces or right braces are collapsed together in nested hashes.

# bad
h = { a: { b: 2 } }

# good
h = { a: { b: 2 }}

Line is too long. [86/80]
Open

      return operate(__method__, path: path, params: params, body: body, query: query)
Severity: Minor
Found in lib/darksky-ruby/http.rb by rubocop

Line is too long. [88/80]
Open

api.blocks = {minutely: false, hourly: false, daily: false, alerts: false, flags: false}
Severity: Minor
Found in bin/darksky by rubocop

Space inside } missing.
Open

    path = DARKSKY_PATH_TEMPLATE % {key: key, loc: loc}
Severity: Minor
Found in lib/darksky-ruby/api.rb by rubocop

Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

Example: EnforcedStyle: space

# The `space` style enforces that hash literals have
# surrounding space.

# bad
h = {a: 1, b: 2}

# good
h = { a: 1, b: 2 }

Example: EnforcedStyle: no_space

# The `no_space` style enforces that hash literals have
# no surrounding space.

# bad
h = { a: 1, b: 2 }

# good
h = {a: 1, b: 2}

Example: EnforcedStyle: compact

# The `compact` style normally requires a space inside
# hash braces, with the exception that successive left
# braces or right braces are collapsed together in nested hashes.

# bad
h = { a: { b: 2 } }

# good
h = { a: { b: 2 }}

Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
Open

  DARKSKY_PATH_TEMPLATE = '/forecast/%{key}/%{loc}'
Severity: Minor
Found in lib/darksky-ruby/api.rb by rubocop

Use a consistent style for named format string tokens.

Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

Example: EnforcedStyle: annotated (default)

# bad
format('%{greeting}', greeting: 'Hello')
format('%s', 'Hello')

# good
format('%<greeting>s', greeting: 'Hello')</greeting>

Example: EnforcedStyle: template

# bad
format('%<greeting>s', greeting: 'Hello')
format('%s', 'Hello')

# good
format('%{greeting}', greeting: 'Hello')</greeting>

Example: EnforcedStyle: unannotated

# bad
format('%<greeting>s', greeting: 'Hello')
format('%{greeting}', 'Hello')

# good
format('%s', 'Hello')</greeting>

Redundant return detected.
Open

      return handle_response(res)
Severity: Minor
Found in lib/darksky-ruby/http.rb by rubocop

This cop checks for redundant return expressions.

Example:

def test
  return something
end

def test
  one
  two
  three
  return something
end

It should be extended to handle methods whose body is if/else or a case expression with a default branch.

Do not use :: for method calls.
Open

Optimist::die :loc, "is missing" if loc.nil?
Severity: Minor
Found in bin/darksky by rubocop

This cop checks for methods invoked via the :: operator instead of the . operator (like FileUtils::rmdir instead of FileUtils.rmdir).

Example:

# bad
Timeout::timeout(500) { do_something }
FileUtils::rmdir(dir)
Marshal::dump(obj)

# good
Timeout.timeout(500) { do_something }
FileUtils.rmdir(dir)
Marshal.dump(obj)

Prefer $INPUT_RECORD_SEPARATOR or $RS from the stdlib 'English' module (don't forget to require it) over $/.
Open

  s.files         = `git ls-files`.split($/)
Severity: Minor
Found in darksky-ruby.gemspec by rubocop

Do not use :: for method calls.
Open

opts = Optimist::options do
Severity: Minor
Found in bin/darksky by rubocop

This cop checks for methods invoked via the :: operator instead of the . operator (like FileUtils::rmdir instead of FileUtils.rmdir).

Example:

# bad
Timeout::timeout(500) { do_something }
FileUtils::rmdir(dir)
Marshal::dump(obj)

# good
Timeout.timeout(500) { do_something }
FileUtils.rmdir(dir)
Marshal.dump(obj)

Missing top-level class documentation comment.
Open

class DarkSkyAPI
Severity: Minor
Found in lib/darksky-ruby/api.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
Severity
Category
Status
Source
Language