MatteoRagni/cas-rb

View on GitHub
lib/numbers/variables.rb

Summary

Maintainability
A
0 mins
Test Coverage

Do not use :: for method calls.
Open

          return CAS::const(dt[self])
Severity: Minor
Found in lib/numbers/variables.rb 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)

Line is too long. [89/80]
Open

    #  * **returns**: `String` that represent Ruby code to be parsed in `CAS::Op#to_proc`
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Line is too long. [92/80]
Open

    #  * **returns**: `CAS::Variable` instance if exists, creates a new variable if does not
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Do not use :: for method calls.
Open

      @@container[s] || CAS::vars(s)
Severity: Minor
Found in lib/numbers/variables.rb 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)

Line is too long. [84/80]
Open

      raise CASError, "Variable #{name} already exists" if CAS::Variable.exist? name
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Use a guard clause instead of wrapping the code inside a conditional expression.
Open

      if dt.keys.include? self
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Use a guard clause instead of wrapping the code inside a conditional expression

Example:

# bad
def test
  if something
    work
  end
end

# good
def test
  return unless something
  work
end

# also good
def test
  work if something
end

# bad
if something
  raise 'exception'
else
  ok
end

# good
raise 'exception' if something
ok

Prefer to_s over string interpolation.
Open

      "#{@name}"
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

This cop checks for strings that are just an interpolated expression.

Example:

# bad
"#{@var}"

# good
@var.to_s

# good if @var is already a String
@var

Use a guard clause instead of wrapping the code inside a conditional expression.
Open

        if dt[self].is_a? CAS::Op
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Use a guard clause instead of wrapping the code inside a conditional expression

Example:

# bad
def test
  if something
    work
  end
end

# good
def test
  return unless something
  work
end

# also good
def test
  work if something
end

# bad
if something
  raise 'exception'
else
  ok
end

# good
raise 'exception' if something
ok

Use self.new instead of Variable.new.
Open

    def Variable.new(name)
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

This cop checks for uses of the class/module name instead of self, when defining class/module methods.

Example:

# bad
class SomeClass
  def SomeClass.class_method
    # ...
  end
end

# good
class SomeClass
  def self.class_method
    # ...
  end
end

When defining the == operator, name its argument other.
Open

    def ==(op)
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

This cop makes sure that certain binary operator methods have their sole parameter named other.

Example:

# bad
def +(amount); end

# good
def +(other); end

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

    @@container = {}
Severity: Minor
Found in lib/numbers/variables.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.

Line is too long. [90/80]
Open

    # Overrides new method. This will return an existing variable if in variable container
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Do not place comments on the same line as the end keyword.
Open

  end # Number
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

This cop checks for comments put on the same line as some keywords. These keywords are: begin, class, def, end, module.

Note that some comments (such as :nodoc: and rubocop:disable) are allowed.

Example:

# bad
if condition
  statement
end # end if

# bad
class X # comment
  statement
end

# bad
def x; end # comment

# good
if condition
  statement
end

# good
class X # :nodoc:
  y
end

Script file variables.rb doesn't have execute permission.
Open

#!/usr/bin/env ruby
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Redundant self detected.
Open

        return self.inspect == op.inspect
Severity: Minor
Found in lib/numbers/variables.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

Missing top-level module documentation comment.
Open

module CAS
Severity: Minor
Found in lib/numbers/variables.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

Redundant return detected.
Open

        return self.inspect == op.inspect
Severity: Minor
Found in lib/numbers/variables.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.

Prefer to_s over string interpolation.
Open

      "#{@name}"
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

This cop checks for strings that are just an interpolated expression.

Example:

# bad
"#{@var}"

# good
@var.to_s

# good if @var is already a String
@var

Line is too long. [87/80]
Open

          raise CASError, "Impossible subs. Received a #{dt[self].class} = #{dt[self]}"
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Use a guard clause instead of wrapping the code inside a conditional expression.
Open

      if op.is_a? CAS::Variable
Severity: Minor
Found in lib/numbers/variables.rb by rubocop

Use a guard clause instead of wrapping the code inside a conditional expression

Example:

# bad
def test
  if something
    work
  end
end

# good
def test
  return unless something
  work
end

# also good
def test
  work if something
end

# bad
if something
  raise 'exception'
else
  ok
end

# good
raise 'exception' if something
ok

Redundant return detected.
Open

    return ret
Severity: Minor
Found in lib/numbers/variables.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.

There are no issues that match your filters.

Category
Status