sanger/sequencescape

View on GitHub
app/api/core/io/registry.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%

Core::Io::Registry has no descriptive comment
Open

class Core::Io::Registry < Core::Registry
Severity: Minor
Found in app/api/core/io/registry.rb by reek

Classes and modules are the units of reuse and release. It is therefore considered good practice to annotate every class and module with a brief comment outlining its responsibilities.

Example

Given

class Dummy
  # Do things...
end

Reek would emit the following warning:

test.rb -- 1 warning:
  [1]:Dummy has no descriptive comment (IrresponsibleModule)

Fixing this is simple - just an explaining comment:

# The Dummy class is responsible for ...
class Dummy
  # Do things...
end

Core::Io::Registry#lookup_target_class_in_registry performs a nil-check
Open

    return in_current_registry unless in_current_registry.nil?
Severity: Minor
Found in app/api/core/io/registry.rb by reek

A NilCheck is a type check. Failures of NilCheck violate the "tell, don't ask" principle.

Additionally, type checks often mask bigger problems in your source code like not using OOP and / or polymorphism when you should.

Example

Given

class Klass
  def nil_checker(argument)
    if argument.nil?
      puts "argument isn't nil!"
    end
  end
end

Reek would emit the following warning:

test.rb -- 1 warning:
  [3]:Klass#nil_checker performs a nil-check. (NilCheck)

Core::Io::Registry#lookup_target_class_in_registry has the variable name 'e'
Open

  rescue NameError => e
Severity: Minor
Found in app/api/core/io/registry.rb by reek

An Uncommunicative Variable Name is a variable name that doesn't communicate its intent well enough.

Poor names make it hard for the reader to build a mental picture of what's going on in the code. They can also be mis-interpreted; and they hurt the flow of reading, because the reader must slow down to interpret the names.

There are no issues that match your filters.

Category
Status