TracksApp/tracks

View on GitHub
lib/tracks/source_view.rb

Summary

Maintainability
A
0 mins
Test Coverage

Tracks::SourceViewSwitching::Responder#method_missing is controlled by argument 'check_source_view'
Open

        yield if check_source_view == @source_view && block_given?
Severity: Minor
Found in lib/tracks/source_view.rb by reek

Control Parameter is a special case of Control Couple

Example

A simple example would be the "quoted" parameter in the following method:

def write(quoted)
  if quoted
    write_quoted @value
  else
    write_unquoted @value
  end
end

Fixing those problems is out of the scope of this document but an easy solution could be to remove the "write" method alltogether and to move the calls to "writequoted" / "writeunquoted" in the initial caller of "write".

Tracks::SourceViewSwitching::Controller has no descriptive comment
Open

    module Controller
Severity: Minor
Found in lib/tracks/source_view.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

Tracks::SourceViewSwitching::Responder has no descriptive comment
Open

    class Responder
Severity: Minor
Found in lib/tracks/source_view.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

Tracks::SourceViewSwitching::Helper has no descriptive comment
Open

    module Helper
Severity: Minor
Found in lib/tracks/source_view.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

Tracks::SourceViewSwitching::Responder#nil? performs a nil-check
Open

        yield if @source_view.nil? && block_given?
Severity: Minor
Found in lib/tracks/source_view.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)

Tracks::SourceViewSwitching::Responder#method_missing has unused parameter 'args'
Open

      def method_missing(check_source_view, *args)
Severity: Minor
Found in lib/tracks/source_view.rb by reek

Unused Parameter refers to methods with parameters that are unused in scope of the method.

Having unused parameters in a method is code smell because leaving dead code in a method can never improve the method and it makes the code confusing to read.

Example

Given:

class Klass
  def unused_parameters(x,y,z)
    puts x,y # but not z
  end
end

Reek would emit the following warning:

[2]:Klass#unused_parameters has unused parameter 'z' (UnusedParameters)

Tracks::SourceViewSwitching::Helper#source_view_is_one_of has the parameter name 's'
Open

      def source_view_is_one_of(*s)
Severity: Minor
Found in lib/tracks/source_view.rb by reek

An Uncommunicative Parameter Name is a parameter 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.

Tracks::SourceViewSwitching::Controller#source_view_is has the parameter name 's'
Open

      def source_view_is(s)
Severity: Minor
Found in lib/tracks/source_view.rb by reek

An Uncommunicative Parameter Name is a parameter 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.

Tracks::SourceViewSwitching::Controller#source_view_is_one_of has the parameter name 's'
Open

      def source_view_is_one_of(*s)
Severity: Minor
Found in lib/tracks/source_view.rb by reek

An Uncommunicative Parameter Name is a parameter 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.

Tracks::SourceViewSwitching::Helper#source_view_is has the parameter name 's'
Open

      def source_view_is(s)
Severity: Minor
Found in lib/tracks/source_view.rb by reek

An Uncommunicative Parameter Name is a parameter 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