IMcPwn/browser-backdoor

View on GitHub
server/lib/bbs/config.rb

Summary

Maintainability
A
35 mins
Test Coverage

Assignment Branch Condition size for loadConfig is too high. [20.71/15]
Open

    def Config.loadConfig
        @@configfile = YAML.load_file("config.yml")
        if @@configfile['secure']
            if !File.exist?(@@configfile['priv_key'])
                abort("Fatal error: Private key (#{@@configfile['priv_key']}) does not exist but is configured in config.yml.")
Severity: Minor
Found in server/lib/bbs/config.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

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

    def Config.loadConfig
        @@configfile = YAML.load_file("config.yml")
        if @@configfile['secure']
            if !File.exist?(@@configfile['priv_key'])
                abort("Fatal error: Private key (#{@@configfile['priv_key']}) does not exist but is configured in config.yml.")
Severity: Minor
Found in server/lib/bbs/config.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 loadConfig has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
Open

    def Config.loadConfig
        @@configfile = YAML.load_file("config.yml")
        if @@configfile['secure']
            if !File.exist?(@@configfile['priv_key'])
                abort("Fatal error: Private key (#{@@configfile['priv_key']}) does not exist but is configured in config.yml.")
Severity: Minor
Found in server/lib/bbs/config.rb - About 35 mins to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Use 2 (not 4) spaces for indentation.
Open

                abort("Fatal error: Certificate chain (#{@@configfile['cert_chain']}) does not exist but is configured in config.yml.")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Line is too long. [134/80]
Open

                abort("Fatal error: Output folder (#{@@configfile['out_location']}) cannot be created because of error: #{e.message}")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

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

            abort("Fatal error: Config has not been loaded. Config.loadConfig() must be called before Config.loadLog().")
Severity: Minor
Found in server/lib/bbs/config.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"

Use 2 (not 4) spaces for indentation.
Open

            begin
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Use 2 (not 4) spaces for indentation.
Open

                Dir.mkdir(@@configfile['out_location'])
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Line is too long. [135/80]
Open

                abort("Fatal error: Certificate chain (#{@@configfile['cert_chain']}) does not exist but is configured in config.yml.")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

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

            @@log = Logger.new(@@configfile['log'])
Severity: Minor
Found in server/lib/bbs/config.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.

Use 2 (not 4) spaces for indentation.
Open

        @@configfile = YAML.load_file("config.yml")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Use snake_case for method names.
Open

    def Config.loadConfig
Severity: Minor
Found in server/lib/bbs/config.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

Use self.loadConfig instead of Config.loadConfig.
Open

    def Config.loadConfig
Severity: Minor
Found in server/lib/bbs/config.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

Use 2 (not 4) spaces for indentation.
Open

            @@log = Logger.new(@@configfile['log'])
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Line is too long. [127/80]
Open

                abort("Fatal error: Private key (#{@@configfile['priv_key']}) does not exist but is configured in config.yml.")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

Use self.loadLog instead of Config.loadLog.
Open

    def Config.loadLog
Severity: Minor
Found in server/lib/bbs/config.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

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

        if !File.exist?(@@configfile['out_location'])
Severity: Minor
Found in server/lib/bbs/config.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

Avoid rescuing without specifying an error class.
Open

            rescue => e
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cop checks for rescuing StandardError. There are two supported styles implicit and explicit. This cop will not register an offense if any error other than StandardError is specified.

Example: EnforcedStyle: implicit

# `implicit` will enforce using `rescue` instead of
# `rescue StandardError`.

# bad
begin
  foo
rescue StandardError
  bar
end

# good
begin
  foo
rescue
  bar
end

# good
begin
  foo
rescue OtherError
  bar
end

# good
begin
  foo
rescue StandardError, SecurityError
  bar
end

Example: EnforcedStyle: explicit (default)

# `explicit` will enforce using `rescue StandardError`
# instead of `rescue`.

# bad
begin
  foo
rescue
  bar
end

# good
begin
  foo
rescue StandardError
  bar
end

# good
begin
  foo
rescue OtherError
  bar
end

# good
begin
  foo
rescue StandardError, SecurityError
  bar
end

Use 2 (not 4) spaces for indentation.
Open

            abort("Fatal error: Config has not been loaded. Config.loadConfig() must be called before Config.loadLog().")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Trailing whitespace detected.
Open

    
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

Use snake_case for method names.
Open

    def Config.getLog
Severity: Minor
Found in server/lib/bbs/config.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

Use 2 (not 4) spaces for indentation.
Open

    @@configfile = nil
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Trailing whitespace detected.
Open

    
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

Trailing whitespace detected.
Open

    
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

Redundant return detected.
Open

        return @@log
Severity: Minor
Found in server/lib/bbs/config.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.

Use 2 (not 4) spaces for indentation.
Open

        return @@configfile
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Redundant return detected.
Open

        return @@configfile
Severity: Minor
Found in server/lib/bbs/config.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.

Use 2 (not 4) spaces for indentation.
Open

            if !File.exist?(@@configfile['priv_key'])
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Use 2 (not 4) spaces for indentation.
Open

                abort("Fatal error: Private key (#{@@configfile['priv_key']}) does not exist but is configured in config.yml.")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Use 2 (not 4) spaces for indentation.
Open

                abort("Fatal error: Output folder (#{@@configfile['out_location']}) cannot be created because of error: #{e.message}")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

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

    @@configfile = nil
Severity: Minor
Found in server/lib/bbs/config.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.

Favor unless over if for negative conditions.
Open

        if !File.exist?(@@configfile['out_location'])
            begin
                Dir.mkdir(@@configfile['out_location'])
            rescue => e
                abort("Fatal error: Output folder (#{@@configfile['out_location']}) cannot be created because of error: #{e.message}")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

Checks for uses of if with a negated condition. Only ifs without else are considered. There are three different styles:

- both
- prefix
- postfix

Example: EnforcedStyle: both (default)

# enforces `unless` for `prefix` and `postfix` conditionals

# bad

if !foo
  bar
end

# good

unless foo
  bar
end

# bad

bar if !foo

# good

bar unless foo

Example: EnforcedStyle: prefix

# enforces `unless` for just `prefix` conditionals

# bad

if !foo
  bar
end

# good

unless foo
  bar
end

# good

bar if !foo

Example: EnforcedStyle: postfix

# enforces `unless` for just `postfix` conditionals

# bad

bar if !foo

# good

bar unless foo

# good

if !foo
  bar
end

Missing top-level module documentation comment.
Open

module Config
Severity: Minor
Found in server/lib/bbs/config.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

Line is too long. [121/80]
Open

            abort("Fatal error: Config has not been loaded. Config.loadConfig() must be called before Config.loadLog().")
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

Prefer the use of the nil? predicate.
Open

        if @@configfile == nil
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cop checks for comparison of something with nil using ==.

Example:

# bad
if x == nil
end

# good
if x.nil?
end

Extra empty line detected at module body beginning.
Open


module Config
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks if empty lines around the bodies of modules match the configuration.

Example: EnforcedStyle: empty_lines

# good

module Foo

  def bar
    # ...
  end

end

Example: EnforcedStyle: emptylinesexcept_namespace

# good

module Foo
  module Bar

    # ...

  end
end

Example: EnforcedStyle: emptylinesspecial

# good
module Foo

  def bar; end

end

Example: EnforcedStyle: noemptylines (default)

# good

module Foo
  def bar
    # ...
  end
end

Use 2 (not 4) spaces for indentation.
Open

        if @@configfile == nil
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

1 trailing blank lines detected.
Open

Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

Use snake_case for method names.
Open

    def Config.loadLog
Severity: Minor
Found in server/lib/bbs/config.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

Use self.getConfig instead of Config.getConfig.
Open

    def Config.getConfig
Severity: Minor
Found in server/lib/bbs/config.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

Use self.getLog instead of Config.getLog.
Open

    def Config.getLog
Severity: Minor
Found in server/lib/bbs/config.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

Use 2 (not 0) spaces for indentation.
Open

module Config
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Use 2 (not 4) spaces for indentation.
Open

        return @@log
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks for indentation that doesn't use the specified number of spaces.

See also the IndentationConsistency cop which is the companion to this one.

Example:

# bad
class A
 def test
  puts 'hello'
 end
end

# good
class A
  def test
    puts 'hello'
  end
end

Example: IgnoredPatterns: ['^\s*module']

# bad
module A
class B
  def test
  puts 'hello'
  end
end
end

# good
module A
class B
  def test
    puts 'hello'
  end
end
end

Trailing whitespace detected.
Open

    
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

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

    @@log = nil
Severity: Minor
Found in server/lib/bbs/config.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.

Use snake_case for method names.
Open

    def Config.getConfig
Severity: Minor
Found in server/lib/bbs/config.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

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

        @@configfile = YAML.load_file("config.yml")
Severity: Minor
Found in server/lib/bbs/config.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"

Extra empty line detected at module body end.
Open


end
Severity: Minor
Found in server/lib/bbs/config.rb by rubocop

This cops checks if empty lines around the bodies of modules match the configuration.

Example: EnforcedStyle: empty_lines

# good

module Foo

  def bar
    # ...
  end

end

Example: EnforcedStyle: emptylinesexcept_namespace

# good

module Foo
  module Bar

    # ...

  end
end

Example: EnforcedStyle: emptylinesspecial

# good
module Foo

  def bar; end

end

Example: EnforcedStyle: noemptylines (default)

# good

module Foo
  def bar
    # ...
  end
end

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

        @@configfile = YAML.load_file("config.yml")
Severity: Minor
Found in server/lib/bbs/config.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.

There are no issues that match your filters.

Category
Status