coryodaniel/yodeler

View on GitHub
lib/yodeler/client.rb

Summary

Maintainability
A
0 mins
Test Coverage

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

    def format_options(opts)
      endpoint_names  = opts.delete(:to) || [default_endpoint_name]
      tags            = opts.delete(:tags)
      prefix          = opts.delete(:prefix) || default_prefix
      timestamp       = opts.delete(:timestamp) || timestamp_generator
Severity: Minor
Found in lib/yodeler/client.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.

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

    def timing(name, value = nil, opts = {})
      if value.is_a?(Hash)
        opts = value
        value = nil
      end
Severity: Minor
Found in lib/yodeler/client.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.

Assignment Branch Condition size for format_options is too high. [15.39/15]
Open

    def format_options(opts)
      endpoint_names  = opts.delete(:to) || [default_endpoint_name]
      tags            = opts.delete(:tags)
      prefix          = opts.delete(:prefix) || default_prefix
      timestamp       = opts.delete(:timestamp) || timestamp_generator
Severity: Minor
Found in lib/yodeler/client.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

Line is too long. [136/80]
Open

        raise ArgumentError, "Time format not recognized: #{timestamp_format}. \nOptions are #{TIMESTAMP_FORMATS.join(', ')} or a lamba"
Severity: Minor
Found in lib/yodeler/client.rb by rubocop

Missing top-level class documentation comment.
Open

  class Client
Severity: Minor
Found in lib/yodeler/client.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

Move dispatch(:event, name, payload, opts) out of the conditional.
Open

        dispatch(:event, name, payload, opts)
Severity: Minor
Found in lib/yodeler/client.rb by rubocop

This cop checks for identical lines at the beginning or end of each branch of a conditional statement.

Example:

# bad
if condition
  do_x
  do_z
else
  do_y
  do_z
end

# good
if condition
  do_x
else
  do_y
end
do_z

# bad
if condition
  do_z
  do_x
else
  do_z
  do_y
end

# good
do_z
if condition
  do_x
else
  do_y
end

# bad
case foo
when 1
  do_x
when 2
  do_x
else
  do_x
end

# good
case foo
when 1
  do_x
  do_y
when 2
  # nothing
else
  do_x
  do_z
end

Freeze mutable objects assigned to constants.
Open

    TIMESTAMP_FORMATS = {
      iso8601: -> { Time.now.utc.iso8601 },
      epoch:   -> { Time.now.to_i }
    }
Severity: Minor
Found in lib/yodeler/client.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

Move dispatch(:event, name, payload, opts) out of the conditional.
Open

        dispatch(:event, name, payload, opts)
Severity: Minor
Found in lib/yodeler/client.rb by rubocop

This cop checks for identical lines at the beginning or end of each branch of a conditional statement.

Example:

# bad
if condition
  do_x
  do_z
else
  do_y
  do_z
end

# good
if condition
  do_x
else
  do_y
end
do_z

# bad
if condition
  do_z
  do_x
else
  do_z
  do_y
end

# good
do_z
if condition
  do_x
else
  do_y
end

# bad
case foo
when 1
  do_x
when 2
  do_x
else
  do_x
end

# good
case foo
when 1
  do_x
  do_y
when 2
  # nothing
else
  do_x
  do_z
end

Always use raise to signal exceptions.
Open

      fail DuplicateEndpointNameError.new(name: name) if @endpoints[name]
Severity: Minor
Found in lib/yodeler/client.rb by rubocop

This cop checks for uses of fail and raise.

Example: EnforcedStyle: only_raise (default)

# The `only_raise` style enforces the sole use of `raise`.
# bad
begin
  fail
rescue Exception
  # handle it
end

def watch_out
  fail
rescue Exception
  # handle it
end

Kernel.fail

# good
begin
  raise
rescue Exception
  # handle it
end

def watch_out
  raise
rescue Exception
  # handle it
end

Kernel.raise

Example: EnforcedStyle: only_fail

# The `only_fail` style enforces the sole use of `fail`.
# bad
begin
  raise
rescue Exception
  # handle it
end

def watch_out
  raise
rescue Exception
  # handle it
end

Kernel.raise

# good
begin
  fail
rescue Exception
  # handle it
end

def watch_out
  fail
rescue Exception
  # handle it
end

Kernel.fail

Example: EnforcedStyle: semantic

# The `semantic` style enforces the use of `fail` to signal an
# exception, then will use `raise` to trigger an offense after
# it has been rescued.
# bad
begin
  raise
rescue Exception
  # handle it
end

def watch_out
  # Error thrown
rescue Exception
  fail
end

Kernel.fail
Kernel.raise

# good
begin
  fail
rescue Exception
  # handle it
end

def watch_out
  fail
rescue Exception
  raise 'Preferably with descriptive message'
end

explicit_receiver.fail
explicit_receiver.raise

There are no issues that match your filters.

Category
Status