bio-miga/miga

View on GitHub

Showing 1,637 of 1,651 total issues

Use snake_case for method names.
Open

  def self.CITATION
Severity: Minor
Found in lib/miga/version.rb by rubocop

This cop makes sure that all methods use the configured style, snake_case or camelCase, for their names.

Example: EnforcedStyle: snake_case (default)

# bad
def fooBar; end

# good
def foo_bar; end

Example: EnforcedStyle: camelCase

# bad
def foo_bar; end

# good
def fooBar; end

Avoid the use of Perl-style backrefs.
Open

        stats[:"#{$1}_pvalue"] = $3.to_f unless $1 == 'root'
Severity: Minor
Found in lib/miga/result/stats.rb by rubocop

This cop looks for uses of Perl-style regexp match backreferences like $1, $2, etc.

Example:

# bad
puts $1

# good
puts Regexp.last_match(1)

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

    MiGA::MiGA.DEBUG "Fixing essential genes by domain"
Severity: Minor
Found in lib/miga/result/stats.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"

Redundant self detected.
Open

    self.load
Severity: Minor
Found in lib/miga/project.rb by rubocop

This cop checks for redundant uses of self.

The usage of self is only needed when:

  • Sending a message to same object with zero arguments in presence of a method name clash with an argument or a local variable.

  • Calling an attribute writer to prevent an local variable assignment.

Note, with using explicit self you can only send messages with public or protected scope, you cannot send private messages this way.

Note we allow uses of self with operators because it would be awkward otherwise.

Example:

# bad
def foo(bar)
  self.baz
end

# good
def foo(bar)
  self.bar  # Resolves name clash with the argument.
end

def foo
  bar = 1
  self.bar  # Resolves name clash with the local variable.
end

def foo
  %w[x y z].select do |bar|
    self.bar == bar  # Resolves name clash with argument of the block.
  end
end

Do not use parentheses for method calls with no arguments.
Open

  Oj.mimic_JSON()
Severity: Minor
Found in lib/miga/json.rb by rubocop

This cop checks for unwanted parentheses in parameterless method calls.

Example:

# bad
object.some_method()

# good
object.some_method

Avoid multi-line ternary operators, use if or unless instead.
Open

        left_time   < 0.01 ? '' :
          left_time < 1    ? ('%.0fs left' % (left_time * 60))   :
          left_time > 1440 ? ('%.1fd left' % (left_time / 1440)) :
          left_time > 60   ? ('%.1fh left' % (left_time / 60))   :
          ('%.1fm left' % left_time)
Severity: Minor
Found in lib/miga/common.rb by rubocop

This cop checks for multi-line ternary op expressions.

Example:

# bad
a = cond ?
  b : c
a = cond ? b :
    c
a = cond ?
    b :
    c

# good
a = cond ? b : c
a =
  if cond
    b
  else
    c
  end

Avoid multi-line ternary operators, use if or unless instead.
Open

          left_time < 1    ? ('%.0fs left' % (left_time * 60))   :
          left_time > 1440 ? ('%.1fd left' % (left_time / 1440)) :
          left_time > 60   ? ('%.1fh left' % (left_time / 60))   :
          ('%.1fm left' % left_time)
Severity: Minor
Found in lib/miga/common.rb by rubocop

This cop checks for multi-line ternary op expressions.

Example:

# bad
a = cond ?
  b : c
a = cond ? b :
    c
a = cond ?
    b :
    c

# good
a = cond ? b : c
a =
  if cond
    b
  else
    c
  end

Use snake_case for variable names.
Open

  @@FOLDERS = %w[data metadata daemon]
Severity: Minor
Found in lib/miga/project/base.rb by rubocop

This cop makes sure that all variables use the configured style, snake_case or camelCase, for their names.

Example: EnforcedStyle: snake_case (default)

# bad
fooBar = 1

# good
foo_bar = 1

Example: EnforcedStyle: camelCase

# bad
foo_bar = 1

# good
fooBar = 1

Align the operands of a condition in an unless statement spanning multiple lines.
Open

      (result_files_exist?(base, ['.rds']) ||
       result_files_exist?(base, ['.rda']))
Severity: Minor
Found in lib/miga/project/result.rb by rubocop

This cop checks the indentation of the right hand side operand in binary operations that span more than one line.

Example:

# bad
if a +
b
  something
end

# good
if a +
   b
  something
end

Use snake_case for method names.
Open

  def self.CITATION_ARRAY
Severity: Minor
Found in lib/miga/version.rb by rubocop

This cop makes sure that all methods use the configured style, snake_case or camelCase, for their names.

Example: EnforcedStyle: snake_case (default)

# bad
def fooBar; end

# good
def foo_bar; end

Example: EnforcedStyle: camelCase

# bad
def foo_bar; end

# good
def fooBar; end

Avoid the use of Perl-style backrefs.
Open

            stats["#{$1.downcase}_copies".to_sym] = $2.to_f
Severity: Minor
Found in lib/miga/result/stats.rb by rubocop

This cop looks for uses of Perl-style regexp match backreferences like $1, $2, etc.

Example:

# bad
puts $1

# good
puts Regexp.last_match(1)

Avoid the use of Perl-style backrefs.
Open

      stats[:aai] = [$2.to_f, '%']
Severity: Minor
Found in lib/miga/result/stats.rb by rubocop

This cop looks for uses of Perl-style regexp match backreferences like $1, $2, etc.

Example:

# bad
puts $1

# good
puts Regexp.last_match(1)

Avoid multi-line ternary operators, use if or unless instead.
Open

          left_time > 60   ? ('%.1fh left' % (left_time / 60))   :
          ('%.1fm left' % left_time)
Severity: Minor
Found in lib/miga/common.rb by rubocop

This cop checks for multi-line ternary op expressions.

Example:

# bad
a = cond ?
  b : c
a = cond ? b :
    c
a = cond ?
    b :
    c

# good
a = cond ? b : c
a =
  if cond
    b
  else
    c
  end

Use n.zero? instead of n == 0.
Open

        (n == 0 ? '' : num_suffix(n, bin))
Severity: Minor
Found in lib/miga/common.rb by rubocop

This cop checks for usage of comparison operators (==, >, <) to test numbers as zero, positive, or negative. These can be replaced by their respective predicate methods. The cop can also be configured to do the reverse.

The cop disregards #nonzero? as it its value is truthy or falsey, but not true and false, and thus not always interchangeable with != 0.

The cop ignores comparisons to global variables, since they are often populated with objects which can be compared with integers, but are not themselves Interger polymorphic.

Example: EnforcedStyle: predicate (default)

# bad

foo == 0
0 > foo
bar.baz > 0

# good

foo.zero?
foo.negative?
bar.baz.positive?

Example: EnforcedStyle: comparison

# bad

foo.zero?
foo.negative?
bar.baz.positive?

# good

foo == 0
0 > foo
bar.baz > 0

Use snake_case for variable names.
Open

  @@DATA_FOLDERS = %w[
Severity: Minor
Found in lib/miga/project/base.rb by rubocop

This cop makes sure that all variables use the configured style, snake_case or camelCase, for their names.

Example: EnforcedStyle: snake_case (default)

# bad
fooBar = 1

# good
foo_bar = 1

Example: EnforcedStyle: camelCase

# bad
foo_bar = 1

# good
fooBar = 1

Replace class var @@FOLDERS with a class instance var.
Open

  @@FOLDERS = %w[data metadata daemon]
Severity: Minor
Found in lib/miga/project/base.rb by rubocop

This cop checks for uses of class variables. Offenses are signaled only on assignment to class variables to reduce the number of offenses that would be reported.

Missing top-level class documentation comment.
Open

class MiGA::Project < MiGA::MiGA
Severity: Minor
Found in lib/miga/project/base.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

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

        datasets << m[1] unless m.nil? or m[1] == "miga-project"
Severity: Minor
Found in lib/miga/project/dataset.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"

Provide an exception class and message as arguments to raise.
Open

      raise MiGA::Error.new(
        "Child threads failed: #{failed}/#{status.size}. " \
        "Maximum exit status: #{status.map { |i| i[1].exitstatus || 0 }.max}"
      )
Severity: Minor
Found in lib/miga/parallel.rb by rubocop

This cop checks the args passed to fail and raise. For exploded style (default), it recommends passing the exception class and message to raise, rather than construct an instance of the error. It will still allow passing just a message, or the construction of an error with more than one argument.

The exploded style works identically, but with the addition that it will also suggest constructing error objects when the exception is passed multiple arguments.

Example: EnforcedStyle: exploded (default)

# bad
raise StandardError.new("message")

# good
raise StandardError, "message"
fail "message"
raise MyCustomError.new(arg1, arg2, arg3)
raise MyKwArgError.new(key1: val1, key2: val2)

Example: EnforcedStyle: compact

# bad
raise StandardError, "message"
raise RuntimeError, arg1, arg2, arg3

# good
raise StandardError.new("message")
raise MyCustomError.new(arg1, arg2, arg3)
fail "message"

Use yield instead of blk.call.
Open

        when 2 then blk.call(k, file)
Severity: Minor
Found in lib/miga/result.rb by rubocop

This cop identifies the use of a &block parameter and block.call where yield would do just as well.

Example:

# bad
def method(&block)
  block.call
end
def another(&func)
  func.call 1, 2, 3
end

# good
def method
  yield
end
def another
  yield 1, 2, 3
end
Severity
Category
Status
Source
Language