IMcPwn/browser-backdoor

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

Summary

Maintainability
A
3 hrs
Test Coverage

Class has too many lines. [148/100]
Open

class WebSocket
    @@wsList = Array.new
    @@selected = -1
    def setSelected(newSelected)
        @@selected = newSelected
Severity: Minor
Found in server/lib/bbs/websocket.rb by rubocop

This cop checks if the length a class exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable.

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

    def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
        log.info("Listening on host #{host}:#{port}")
        EM.run {
            EM::WebSocket.run({
                :host => host,
Severity: Minor
Found in server/lib/bbs/websocket.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.

Assignment Branch Condition size for writeWebm is too high. [28.72/15]
Open

    def self.writeWebm(msg, ws, log, outLoc)
        begin
            encodedWebm = msg.gsub(/Webm data URL: data:(audio|video)\/webm;base64,/, "")
            if encodedWebm == "" || encodedWebm == "Webm data URL: data:" then raise "Webm is empty" end
            webm = Base64.strict_decode64(encodedWebm)
Severity: Minor
Found in server/lib/bbs/websocket.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. [18/10]
Open

    def self.writeWebm(msg, ws, log, outLoc)
        begin
            encodedWebm = msg.gsub(/Webm data URL: data:(audio|video)\/webm;base64,/, "")
            if encodedWebm == "" || encodedWebm == "Webm data URL: data:" then raise "Webm is empty" end
            webm = Base64.strict_decode64(encodedWebm)
Severity: Minor
Found in server/lib/bbs/websocket.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.

Assignment Branch Condition size for writeScreenshot is too high. [22.45/15]
Open

    def self.writeScreenshot(msg, ws, log, outLoc)
        begin
            encodedImage = msg.gsub(/Screenshot data URL: data:image\/png;base64,/, "")
            if encodedImage == "" then raise "Screenshot is empty" end
            image = Base64.strict_decode64(encodedImage)
Severity: Minor
Found in server/lib/bbs/websocket.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

Assignment Branch Condition size for startEM is too high. [22.36/15]
Open

    def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
        log.info("Listening on host #{host}:#{port}")
        EM.run {
            EM::WebSocket.run({
                :host => host,
Severity: Minor
Found in server/lib/bbs/websocket.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

Assignment Branch Condition size for writeResult is too high. [21.12/15]
Open

    def self.writeResult(msg, ws, log, outLoc)
        begin
            file = File.open(outLoc + "/bb-result-#{Time.now.to_f}.txt", "w")
            file.write(msg)
            Bbs::PrintColor.print_notice("Response received but is too large to display (#{msg.length} characters). Saved to #{file.path}")
Severity: Minor
Found in server/lib/bbs/websocket.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. [14/10]
Open

    def self.validSession?(selected, wsList)
        if selected == -2
            Bbs::PrintColor.print_error("That session has been closed.")
            return false
        elsif selected < -1
Severity: Minor
Found in server/lib/bbs/websocket.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 has too many lines. [14/10]
Open

    def self.writeScreenshot(msg, ws, log, outLoc)
        begin
            encodedImage = msg.gsub(/Screenshot data URL: data:image\/png;base64,/, "")
            if encodedImage == "" then raise "Screenshot is empty" end
            image = Base64.strict_decode64(encodedImage)
Severity: Minor
Found in server/lib/bbs/websocket.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 has too many lines. [11/10]
Open

    def self.writeResult(msg, ws, log, outLoc)
        begin
            file = File.open(outLoc + "/bb-result-#{Time.now.to_f}.txt", "w")
            file.write(msg)
            Bbs::PrintColor.print_notice("Response received but is too large to display (#{msg.length} characters). Saved to #{file.path}")
Severity: Minor
Found in server/lib/bbs/websocket.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 has too many lines. [11/10]
Open

    def self.sendCommand(cmd, ws)
        command = ""\
            "setTimeout((function() {"\
            "try {"\
            "#{cmd}"\
Severity: Minor
Found in server/lib/bbs/websocket.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 startEM has 34 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
        log.info("Listening on host #{host}:#{port}")
        EM.run {
            EM::WebSocket.run({
                :host => host,
Severity: Minor
Found in server/lib/bbs/websocket.rb - About 1 hr to fix

    Method startEM has 8 arguments (exceeds 4 allowed). Consider refactoring.
    Open

        def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
    Severity: Major
    Found in server/lib/bbs/websocket.rb - About 1 hr to fix

      Block has too many lines. [31/25]
      Open

              EM.run {
                  EM::WebSocket.run({
                      :host => host,
                      :port => port,
                      :secure => secure,
      Severity: Minor
      Found in server/lib/bbs/websocket.rb by rubocop

      This cop checks if the length of a block exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable. The cop can be configured to ignore blocks passed to certain methods.

      Method detectResult has 5 arguments (exceeds 4 allowed). Consider refactoring.
      Open

          def self.detectResult(msg, ws, log, response_limit, outLoc)
      Severity: Minor
      Found in server/lib/bbs/websocket.rb - About 35 mins to fix

        Avoid parameter lists longer than 5 parameters. [8/5]
        Open

            def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
        Severity: Minor
        Found in server/lib/bbs/websocket.rb by rubocop

        This cop checks for methods with too many parameters. The maximum number of parameters is configurable. Keyword arguments can optionally be excluded from the total count.

        Avoid too many return statements within this method.
        Open

                return true
        Severity: Major
        Found in server/lib/bbs/websocket.rb - About 30 mins to fix

          Use =~ in places where the MatchData returned by #match will not be used.
          Open

                      if msg.match(/Webm data URL: data:audio\/webm;base64,/)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop identifies the use of Regexp#match or String#match, which returns #<MatchData>/nil. The return value of =~ is an integral index/nil and is more performant.

          Example:

          # bad
          do_something if str.match(/regex/)
          while regex.match('str')
            do_something
          end
          
          # good
          method(str =~ /regex/)
          return value unless regex =~ 'str'

          TODO found
          Open

                  # TODO: Detect other result types
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by fixme

          Use 2 (not 4) spaces for indentation.
          Open

                  log.info("Listening on host #{host}:#{port}")
          Severity: Minor
          Found in server/lib/bbs/websocket.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. [101/80]
          Open

                      Bbs::PrintColor.print_error("Error converting WebSocket connection #{ws} to IP address.")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [146/80]
          Open

                      Bbs::PrintColor.print_error("Error converting incoming encoded webm to webm automatically (#{e.message}). Attempting to save as .txt")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for variable names.
          Open

              @@wsList = Array.new
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use snake_case for variable names.
          Open

                  @@wsList = newWsList
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use snake_case for variable names.
          Open

              def self.validSession?(selected, wsList)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use the new Ruby 1.9 hash syntax.
          Open

                          :host => host,
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks hash literal syntax.

          It can enforce either the use of the class hash rocket syntax or the use of the newer Ruby 1.9 syntax (when applicable).

          A separate offense is registered for each problematic pair.

          The supported styles are:

          • ruby19 - forces use of the 1.9 syntax (e.g. {a: 1}) when hashes have all symbols for keys
          • hash_rockets - forces use of hash rockets for all hashes
          • nomixedkeys - simply checks for hashes with mixed syntaxes
          • ruby19nomixed_keys - forces use of ruby 1.9 syntax and forbids mixed syntax hashes

          Example: EnforcedStyle: ruby19 (default)

          # bad
          {:a => 2}
          {b: 1, :c => 2}
          
          # good
          {a: 2, b: 1}
          {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
          {d: 1, 'e' => 2} # technically not forbidden

          Example: EnforcedStyle: hash_rockets

          # bad
          {a: 1, b: 2}
          {c: 1, 'd' => 5}
          
          # good
          {:a => 1, :b => 2}

          Example: EnforcedStyle: nomixedkeys

          # bad
          {:a => 1, b: 2}
          {c: 1, 'd' => 2}
          
          # good
          {:a => 1, :b => 2}
          {c: 1, d: 2}

          Example: EnforcedStyle: ruby19nomixed_keys

          # bad
          {:a => 1, :b => 2}
          {c: 2, 'd' => 3} # should just use hash rockets
          
          # good
          {a: 1, b: 2}
          {:c => 3, 'd' => 4}

          Favor modifier if usage when having a single-line body. Another good alternative is the usage of control flow &&/||.
          Open

                      if encodedImage == "" then raise "Screenshot is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Checks for if and unless statements that would fit on one line if written as a modifier if/unless. The maximum line length is configured in the Metrics/LineLength cop.

          Example:

          # bad
          if condition
            do_stuff(bar)
          end
          
          unless qux.empty?
            Foo.do_something
          end
          
          # good
          do_stuff(bar) if condition
          Foo.do_something unless qux.empty?

          Redundant begin block detected.
          Open

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

          This cop checks for redundant begin blocks.

          Currently it checks for code like this:

          Example:

          def redundant
            begin
              ala
              bala
            rescue StandardError => e
              something
            end
          end
          
          def preferred
            ala
            bala
          rescue StandardError => e
            something
          end

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

                      "}"\
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      Bbs::PrintColor.print_error("No sessions are open.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::WebSocket.writeWebm(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      file = File.open(outLoc + "/bb-result-#{Time.now.to_f}.txt", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.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 setWsList(newWsList)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Omit the parentheses in defs when the method doesn't accept any arguments.
          Open

              def getWsList()
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks for parentheses in the definition of a method, that does not take any arguments. Both instance and class/singleton methods are checked.

          Example:

          # bad
          def foo()
            # does a thing
          end
          
          # good
          def foo
            # does a thing
          end
          
          # also good
          def foo() does_a_thing end

          Example:

          # bad
          def Baz.foo()
            # does a thing
          end
          
          # good
          def Baz.foo
            # does a thing
          end

          Use the new Ruby 1.9 hash syntax.
          Open

                              :private_key_file => priv_key,
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks hash literal syntax.

          It can enforce either the use of the class hash rocket syntax or the use of the newer Ruby 1.9 syntax (when applicable).

          A separate offense is registered for each problematic pair.

          The supported styles are:

          • ruby19 - forces use of the 1.9 syntax (e.g. {a: 1}) when hashes have all symbols for keys
          • hash_rockets - forces use of hash rockets for all hashes
          • nomixedkeys - simply checks for hashes with mixed syntaxes
          • ruby19nomixed_keys - forces use of ruby 1.9 syntax and forbids mixed syntax hashes

          Example: EnforcedStyle: ruby19 (default)

          # bad
          {:a => 2}
          {b: 1, :c => 2}
          
          # good
          {a: 2, b: 1}
          {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
          {d: 1, 'e' => 2} # technically not forbidden

          Example: EnforcedStyle: hash_rockets

          # bad
          {a: 1, b: 2}
          {c: 1, 'd' => 5}
          
          # good
          {:a => 1, :b => 2}

          Example: EnforcedStyle: nomixedkeys

          # bad
          {:a => 1, b: 2}
          {c: 1, 'd' => 2}
          
          # good
          {:a => 1, :b => 2}
          {c: 1, d: 2}

          Example: EnforcedStyle: ruby19nomixed_keys

          # bad
          {:a => 1, :b => 2}
          {c: 2, 'd' => 3} # should just use hash rockets
          
          # good
          {a: 1, b: 2}
          {:c => 3, 'd' => 4}

          Use 2 (not 4) spaces for indentation.
          Open

              @@wsList = Array.new
          Severity: Minor
          Found in server/lib/bbs/websocket.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

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

                      if encodedWebm == "" || encodedWebm == "Webm data URL: data:" then raise "Webm is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                              close_message = "WebSocket connection closed: #{ws}"
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      encodedImage = msg.gsub(/Screenshot data URL: data:image\/png;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.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. [147/80]
          Open

                      log.error("Encoded webm received (size #{msg.length}) from #{ws} but could not convert to webm automatically with error: #{e.message}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [151/80]
          Open

                      Bbs::PrintColor.print_error("Error converting incoming encoded screenshot to PNG automatically (#{e.message}). Attempting to save as .txt")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [102/80]
          Open

                      log.info("Large response received (size #{msg.length}) from #{ws}. Saved to #{file.path}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Avoid using {...} for multi-line blocks.
          Open

                          ws.onopen { |_handshake|
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Check for uses of braces or do/end around single line or multi-line blocks.

          Example: EnforcedStyle: linecountbased (default)

          # bad - single line block
          items.each do |item| item / 5 end
          
          # good - single line block
          items.each { |item| item / 5 }
          
          # bad - multi-line block
          things.map { |thing|
            something = thing.some_method
            process(something)
          }
          
          # good - multi-line block
          things.map do |thing|
            something = thing.some_method
            process(something)
          end

          Example: EnforcedStyle: semantic

          # Prefer `do...end` over `{...}` for procedural blocks.
          
          # return value is used/assigned
          # bad
          foo = map do |x|
            x
          end
          puts (map do |x|
            x
          end)
          
          # return value is not used out of scope
          # good
          map do |x|
            x
          end
          
          # Prefer `{...}` over `do...end` for functional blocks.
          
          # return value is not used out of scope
          # bad
          each { |x|
            x
          }
          
          # return value is used/assigned
          # good
          foo = map { |x|
            x
          }
          map { |x|
            x
          }.inspect

          Example: EnforcedStyle: bracesforchaining

          # bad
          words.each do |word|
            word.flip.flop
          end.join("-")
          
          # good
          words.each { |word|
            word.flip.flop
          }.join("-")

          Avoid using {...} for multi-line blocks.
          Open

                          ws.onmessage { |msg|
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Check for uses of braces or do/end around single line or multi-line blocks.

          Example: EnforcedStyle: linecountbased (default)

          # bad - single line block
          items.each do |item| item / 5 end
          
          # good - single line block
          items.each { |item| item / 5 }
          
          # bad - multi-line block
          things.map { |thing|
            something = thing.some_method
            process(something)
          }
          
          # good - multi-line block
          things.map do |thing|
            something = thing.some_method
            process(something)
          end

          Example: EnforcedStyle: semantic

          # Prefer `do...end` over `{...}` for procedural blocks.
          
          # return value is used/assigned
          # bad
          foo = map do |x|
            x
          end
          puts (map do |x|
            x
          end)
          
          # return value is not used out of scope
          # good
          map do |x|
            x
          end
          
          # Prefer `{...}` over `do...end` for functional blocks.
          
          # return value is not used out of scope
          # bad
          each { |x|
            x
          }
          
          # return value is used/assigned
          # good
          foo = map { |x|
            x
          }
          map { |x|
            x
          }.inspect

          Example: EnforcedStyle: bracesforchaining

          # bad
          words.each do |word|
            word.flip.flop
          end.join("-")
          
          # good
          words.each { |word|
            word.flip.flop
          }.join("-")

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

                          file = File.open(outLoc + "/bb-video-#{Time.now.to_f}.webm", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.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 empty lines between method definitions.
          Open

              def getWsList()
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks whether method definitions are separated by one empty line.

          NumberOfEmptyLines can be and integer (e.g. 1 by default) or an array (e.g. [1, 2]) to specificy a minimum and a maximum of empty lines.

          AllowAdjacentOneLineDefs can be used to configure is adjacent one line methods definitions are an offense

          Example:

          # bad
          def a
          end
          def b
          end

          Example:

          # good
          def a
          end
          
          def b
          end

          Use 2 (not 4) spaces for indentation.
          Open

                  @@wsList = newWsList
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      encodedWebm = msg.gsub(/Webm data URL: data:(audio|video)\/webm;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("Valid sessions will never be less than -1.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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/websocket.rb by rubocop

          Use 2 (not 0) spaces for indentation.
          Open

          class WebSocket
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Avoid using {...} for multi-line blocks.
          Open

                  EM.run {
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Check for uses of braces or do/end around single line or multi-line blocks.

          Example: EnforcedStyle: linecountbased (default)

          # bad - single line block
          items.each do |item| item / 5 end
          
          # good - single line block
          items.each { |item| item / 5 }
          
          # bad - multi-line block
          things.map { |thing|
            something = thing.some_method
            process(something)
          }
          
          # good - multi-line block
          things.map do |thing|
            something = thing.some_method
            process(something)
          end

          Example: EnforcedStyle: semantic

          # Prefer `do...end` over `{...}` for procedural blocks.
          
          # return value is used/assigned
          # bad
          foo = map do |x|
            x
          end
          puts (map do |x|
            x
          end)
          
          # return value is not used out of scope
          # good
          map do |x|
            x
          end
          
          # Prefer `{...}` over `do...end` for functional blocks.
          
          # return value is not used out of scope
          # bad
          each { |x|
            x
          }
          
          # return value is used/assigned
          # good
          foo = map { |x|
            x
          }
          map { |x|
            x
          }.inspect

          Example: EnforcedStyle: bracesforchaining

          # bad
          words.each do |word|
            word.flip.flop
          end.join("-")
          
          # good
          words.each { |word|
            word.flip.flop
          }.join("-")

          Use 2 (not 4) spaces for indentation.
          Open

                      EM::WebSocket.run({
          Severity: Minor
          Found in server/lib/bbs/websocket.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

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

                  elsif msg.start_with?("Webm data URL: data:")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                          file = File.open(outLoc + "/bb-audio-#{Time.now.to_f}.webm", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("That session has been closed.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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. [92/80]
          Open

                      log.info("Webm received (size #{msg.length}) from #{ws}. Saved to #{file.path}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for method names.
          Open

              def self.sendCommand(cmd, ws)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Omit the parentheses in defs when the method doesn't accept any arguments.
          Open

              def getSelected()
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks for parentheses in the definition of a method, that does not take any arguments. Both instance and class/singleton methods are checked.

          Example:

          # bad
          def foo()
            # does a thing
          end
          
          # good
          def foo
            # does a thing
          end
          
          # also good
          def foo() does_a_thing end

          Example:

          # bad
          def Baz.foo()
            # does a thing
          end
          
          # good
          def Baz.foo
            # does a thing
          end

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

                      if encodedWebm == "" || encodedWebm == "Webm data URL: data:" then raise "Webm is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                  command = ""\
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      Bbs::PrintColor.print_error("Session does not exist.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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 empty? instead of length < 1.
          Open

                  elsif wsList.length < 1
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks for numeric comparisons that can be replaced by a predicate method, such as receiver.length == 0, receiver.length > 0, receiver.length != 0, receiver.length < 1 and receiver.size == 0 that can be replaced by receiver.empty? and !receiver.empty.

          Example:

          # bad
          [1, 2, 3].length == 0
          0 == "foobar".length
          array.length < 1
          {a: 1, b: 2}.length != 0
          string.length > 0
          hash.size > 0
          
          # good
          [1, 2, 3].empty?
          "foobar".empty?
          array.empty?
          !{a: 1, b: 2}.empty?
          !string.empty?
          !hash.empty?

          Extra empty line detected at class body end.
          Open

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

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

          Example: EnforcedStyle: empty_lines

          # good
          
          class Foo
          
            def bar
              # ...
            end
          
          end

          Example: EnforcedStyle: emptylinesexcept_namespace

          # good
          
          class Foo
            class Bar
          
              # ...
          
            end
          end

          Example: EnforcedStyle: emptylinesspecial

          # good
          class Foo
          
            def bar; end
          
          end

          Example: EnforcedStyle: noemptylines (default)

          # good
          
          class Foo
            def bar
              # ...
            end
          end

          Use 2 (not 4) spaces for indentation.
          Open

                              error_message = "Error with WebSocket connection #{ws} from " + Bbs::WebSocket.convertIP(ws) + ": #{e.message}"
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::WebSocket.writeResult(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("Error converting incoming encoded screenshot to PNG automatically (#{e.message}). Attempting to save as .txt")
          Severity: Minor
          Found in server/lib/bbs/websocket.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 variable names.
          Open

                      encodedImage = msg.gsub(/Screenshot data URL: data:image\/png;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Avoid using {...} for multi-line blocks.
          Open

                          ws.onerror { |e|
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Check for uses of braces or do/end around single line or multi-line blocks.

          Example: EnforcedStyle: linecountbased (default)

          # bad - single line block
          items.each do |item| item / 5 end
          
          # good - single line block
          items.each { |item| item / 5 }
          
          # bad - multi-line block
          things.map { |thing|
            something = thing.some_method
            process(something)
          }
          
          # good - multi-line block
          things.map do |thing|
            something = thing.some_method
            process(something)
          end

          Example: EnforcedStyle: semantic

          # Prefer `do...end` over `{...}` for procedural blocks.
          
          # return value is used/assigned
          # bad
          foo = map do |x|
            x
          end
          puts (map do |x|
            x
          end)
          
          # return value is not used out of scope
          # good
          map do |x|
            x
          end
          
          # Prefer `{...}` over `do...end` for functional blocks.
          
          # return value is not used out of scope
          # bad
          each { |x|
            x
          }
          
          # return value is used/assigned
          # good
          foo = map { |x|
            x
          }
          map { |x|
            x
          }.inspect

          Example: EnforcedStyle: bracesforchaining

          # bad
          words.each do |word|
            word.flip.flop
          end.join("-")
          
          # good
          words.each { |word|
            word.flip.flop
          }.join("-")

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

                          file = File.open(outLoc + "/bb-audio-#{Time.now.to_f}.webm", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      "try {"\
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  return @@selected
          Severity: Minor
          Found in server/lib/bbs/websocket.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. [106/80]
          Open

                              open_message = "WebSocket connection open: #{ws} from " + Bbs::WebSocket.convertIP(ws)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [81/80]
          Open

                          file = File.open(outLoc + "/bb-video-#{Time.now.to_f}.webm", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for method names.
          Open

              def getWsList()
          Severity: Minor
          Found in server/lib/bbs/websocket.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 snake_case for method names.
          Open

              def self.writeScreenshot(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 snake_case for variable names.
          Open

              def self.writeResult(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Redundant curly braces around a hash parameter.
          Open

                      EM::WebSocket.run({
                          :host => host,
                          :port => port,
                          :secure => secure,
                          :tls_options => {
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks for braces around the last parameter in a method call if the last parameter is a hash. It supports braces, no_braces and context_dependent styles.

          Example: EnforcedStyle: braces

          # The `braces` style enforces braces around all method
          # parameters that are hashes.
          
          # bad
          some_method(x, y, a: 1, b: 2)
          
          # good
          some_method(x, y, {a: 1, b: 2})

          Example: EnforcedStyle: no_braces (default)

          # The `no_braces` style checks that the last parameter doesn't
          # have braces around it.
          
          # bad
          some_method(x, y, {a: 1, b: 2})
          
          # good
          some_method(x, y, a: 1, b: 2)

          Example: EnforcedStyle: context_dependent

          # The `context_dependent` style checks that the last parameter
          # doesn't have braces around it, but requires braces if the
          # second to last parameter is also a hash literal.
          
          # bad
          some_method(x, y, {a: 1, b: 2})
          some_method(x, y, {a: 1, b: 2}, a: 1, b: 2)
          
          # good
          some_method(x, y, a: 1, b: 2)
          some_method(x, y, {a: 1, b: 2}, {a: 1, b: 2})

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

                              @@selected = -2
          Severity: Minor
          Found in server/lib/bbs/websocket.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 the return of the conditional for variable assignment and comparison.
          Open

                      if msg.match(/Webm data URL: data:audio\/webm;base64,/)
                          file = File.open(outLoc + "/bb-audio-#{Time.now.to_f}.webm", "w")
                      else
                          file = File.open(outLoc + "/bb-video-#{Time.now.to_f}.webm", "w")
                      end
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use empty lines between method definitions.
          Open

              def getSelected()
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks whether method definitions are separated by one empty line.

          NumberOfEmptyLines can be and integer (e.g. 1 by default) or an array (e.g. [1, 2]) to specificy a minimum and a maximum of empty lines.

          AllowAdjacentOneLineDefs can be used to configure is adjacent one line methods definitions are an offense

          Example:

          # bad
          def a
          end
          def b
          end

          Example:

          # good
          def a
          end
          
          def b
          end

          Extra empty line detected at module body beginning.
          Open

          
          class WebSocket
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Indent the right brace the same as the start of the line where the left brace is.
          Open

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

          This cops checks the indentation of the first key in a hash literal where the opening brace and the first key are on separate lines. The other keys' indentations are handled by the AlignHash cop.

          By default, Hash literals that are arguments in a method call with parentheses, and where the opening curly brace of the hash is on the same line as the opening parenthesis of the method call, shall have their first key indented one step (two spaces) more than the position inside the opening parenthesis.

          Other hash literals shall have their first key indented one step more than the start of the line where the opening curly brace is.

          This default style is called 'specialinsideparentheses'. Alternative styles are 'consistent' and 'align_braces'. Here are examples:

          Example: EnforcedStyle: specialinsideparentheses (default)

          # The `special_inside_parentheses` style enforces that the first key
          # in a hash literal where the opening brace and the first key are on
          # separate lines is indented one step (two spaces) more than the
          # position inside the opening parentheses.
          
          # bad
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
                               })
          
          # good
          special_inside_parentheses
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                               })

          Example: EnforcedStyle: consistent

          # The `consistent` style enforces that the first key in a hash
          # literal where the opening brace and the first key are on
          # seprate lines is indented the same as a hash literal which is not
          # defined inside a method call.
          
          # bad
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                                })
          
          # good
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
          })

          Example: EnforcedStyle: align_braces

          # The `align_brackets` style enforces that the opening and closing
          # braces are indented to the same position.
          
          # bad
          and_now_for_something = {
                                    completely: :different
          }
          
          # good
          and_now_for_something = {
                                    completely: :different
                                  }

          Use snake_case for method names.
          Open

              def self.writeWebm(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 using {...} for multi-line blocks.
          Open

                          ws.onclose {
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Check for uses of braces or do/end around single line or multi-line blocks.

          Example: EnforcedStyle: linecountbased (default)

          # bad - single line block
          items.each do |item| item / 5 end
          
          # good - single line block
          items.each { |item| item / 5 }
          
          # bad - multi-line block
          things.map { |thing|
            something = thing.some_method
            process(something)
          }
          
          # good - multi-line block
          things.map do |thing|
            something = thing.some_method
            process(something)
          end

          Example: EnforcedStyle: semantic

          # Prefer `do...end` over `{...}` for procedural blocks.
          
          # return value is used/assigned
          # bad
          foo = map do |x|
            x
          end
          puts (map do |x|
            x
          end)
          
          # return value is not used out of scope
          # good
          map do |x|
            x
          end
          
          # Prefer `{...}` over `do...end` for functional blocks.
          
          # return value is not used out of scope
          # bad
          each { |x|
            x
          }
          
          # return value is used/assigned
          # good
          foo = map { |x|
            x
          }
          map { |x|
            x
          }.inspect

          Example: EnforcedStyle: bracesforchaining

          # bad
          words.each do |word|
            word.flip.flop
          end.join("-")
          
          # good
          words.each { |word|
            word.flip.flop
          }.join("-")

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

                  @@wsList = newWsList
          Severity: Minor
          Found in server/lib/bbs/websocket.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 the new Ruby 1.9 hash syntax.
          Open

                              :cert_chain_file => cert_chain
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks hash literal syntax.

          It can enforce either the use of the class hash rocket syntax or the use of the newer Ruby 1.9 syntax (when applicable).

          A separate offense is registered for each problematic pair.

          The supported styles are:

          • ruby19 - forces use of the 1.9 syntax (e.g. {a: 1}) when hashes have all symbols for keys
          • hash_rockets - forces use of hash rockets for all hashes
          • nomixedkeys - simply checks for hashes with mixed syntaxes
          • ruby19nomixed_keys - forces use of ruby 1.9 syntax and forbids mixed syntax hashes

          Example: EnforcedStyle: ruby19 (default)

          # bad
          {:a => 2}
          {b: 1, :c => 2}
          
          # good
          {a: 2, b: 1}
          {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
          {d: 1, 'e' => 2} # technically not forbidden

          Example: EnforcedStyle: hash_rockets

          # bad
          {a: 1, b: 2}
          {c: 1, 'd' => 5}
          
          # good
          {:a => 1, :b => 2}

          Example: EnforcedStyle: nomixedkeys

          # bad
          {:a => 1, b: 2}
          {c: 1, 'd' => 2}
          
          # good
          {:a => 1, :b => 2}
          {c: 1, d: 2}

          Example: EnforcedStyle: ruby19nomixed_keys

          # bad
          {:a => 1, :b => 2}
          {c: 2, 'd' => 3} # should just use hash rockets
          
          # good
          {a: 1, b: 2}
          {:c => 3, 'd' => 4}

          Redundant begin block detected.
          Open

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

          This cop checks for redundant begin blocks.

          Currently it checks for code like this:

          Example:

          def redundant
            begin
              ala
              bala
            rescue StandardError => e
              something
            end
          end
          
          def preferred
            ala
            bala
          rescue StandardError => e
            something
          end

          Avoid rescuing without specifying an error class.
          Open

                  rescue => e
          Severity: Minor
          Found in server/lib/bbs/websocket.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

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

                      file = File.open(outLoc + "/bb-screenshot-#{Time.now.to_f}.png", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.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 empty lines between method definitions.
          Open

              def setWsList(newWsList)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks whether method definitions are separated by one empty line.

          NumberOfEmptyLines can be and integer (e.g. 1 by default) or an array (e.g. [1, 2]) to specificy a minimum and a maximum of empty lines.

          AllowAdjacentOneLineDefs can be used to configure is adjacent one line methods definitions are an offense

          Example:

          # bad
          def a
          end
          def b
          end

          Example:

          # good
          def a
          end
          
          def b
          end

          Use 2 (not 4) spaces for indentation.
          Open

                  @@selected = newSelected
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("Error converting WebSocket connection #{ws} to IP address.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("Error converting incoming encoded webm to webm automatically (#{e.message}). Attempting to save as .txt")
          Severity: Minor
          Found in server/lib/bbs/websocket.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 spaces for indentation in a hash, relative to the start of the line where the left curly brace is.
          Open

                              :private_key_file => priv_key,
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cops checks the indentation of the first key in a hash literal where the opening brace and the first key are on separate lines. The other keys' indentations are handled by the AlignHash cop.

          By default, Hash literals that are arguments in a method call with parentheses, and where the opening curly brace of the hash is on the same line as the opening parenthesis of the method call, shall have their first key indented one step (two spaces) more than the position inside the opening parenthesis.

          Other hash literals shall have their first key indented one step more than the start of the line where the opening curly brace is.

          This default style is called 'specialinsideparentheses'. Alternative styles are 'consistent' and 'align_braces'. Here are examples:

          Example: EnforcedStyle: specialinsideparentheses (default)

          # The `special_inside_parentheses` style enforces that the first key
          # in a hash literal where the opening brace and the first key are on
          # separate lines is indented one step (two spaces) more than the
          # position inside the opening parentheses.
          
          # bad
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
                               })
          
          # good
          special_inside_parentheses
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                               })

          Example: EnforcedStyle: consistent

          # The `consistent` style enforces that the first key in a hash
          # literal where the opening brace and the first key are on
          # seprate lines is indented the same as a hash literal which is not
          # defined inside a method call.
          
          # bad
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                                })
          
          # good
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
          })

          Example: EnforcedStyle: align_braces

          # The `align_brackets` style enforces that the opening and closing
          # braces are indented to the same position.
          
          # bad
          and_now_for_something = {
                                    completely: :different
          }
          
          # good
          and_now_for_something = {
                                    completely: :different
                                  }

          Space missing after comma.
          Open

                      return ws.get_peername[2,6].unpack('nC4')[1..4].join('.')
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Checks for comma (,) not followed by some kind of space.

          Example:

          # bad
          [1,2]
          { foo:bar,}
          
          # good
          [1, 2]
          { foo:bar, }

          Use snake_case for method names.
          Open

              def self.convertIP(ws)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 snake_case for variable names.
          Open

              def setSelected(newSelected)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use snake_case for variable names.
          Open

              def setWsList(newWsList)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use the new Ruby 1.9 hash syntax.
          Open

                          :port => port,
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks hash literal syntax.

          It can enforce either the use of the class hash rocket syntax or the use of the newer Ruby 1.9 syntax (when applicable).

          A separate offense is registered for each problematic pair.

          The supported styles are:

          • ruby19 - forces use of the 1.9 syntax (e.g. {a: 1}) when hashes have all symbols for keys
          • hash_rockets - forces use of hash rockets for all hashes
          • nomixedkeys - simply checks for hashes with mixed syntaxes
          • ruby19nomixed_keys - forces use of ruby 1.9 syntax and forbids mixed syntax hashes

          Example: EnforcedStyle: ruby19 (default)

          # bad
          {:a => 2}
          {b: 1, :c => 2}
          
          # good
          {a: 2, b: 1}
          {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
          {d: 1, 'e' => 2} # technically not forbidden

          Example: EnforcedStyle: hash_rockets

          # bad
          {a: 1, b: 2}
          {c: 1, 'd' => 5}
          
          # good
          {:a => 1, :b => 2}

          Example: EnforcedStyle: nomixedkeys

          # bad
          {:a => 1, b: 2}
          {c: 1, 'd' => 2}
          
          # good
          {:a => 1, :b => 2}
          {c: 1, d: 2}

          Example: EnforcedStyle: ruby19nomixed_keys

          # bad
          {:a => 1, :b => 2}
          {c: 2, 'd' => 3} # should just use hash rockets
          
          # good
          {a: 1, b: 2}
          {:c => 3, 'd' => 4}

          Avoid rescuing without specifying an error class.
          Open

                  rescue => e
          Severity: Minor
          Found in server/lib/bbs/websocket.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

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

                      file = File.open(outLoc + "/bb-result-#{Time.now.to_f}.txt", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      "setTimeout((function() {"\
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      "}"\
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  if selected == -2
          Severity: Minor
          Found in server/lib/bbs/websocket.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

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

                      Bbs::PrintColor.print_error("That session has been closed.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("No sessions are open.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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/websocket.rb by rubocop

          Line is too long. [131/80]
          Open

                              error_message = "Error with WebSocket connection #{ws} from " + Bbs::WebSocket.convertIP(ws) + ": #{e.message}"
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [89/80]
          Open

                      encodedWebm = msg.gsub(/Webm data URL: data:(audio|video)\/webm;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [104/80]
          Open

                      if encodedWebm == "" || encodedWebm == "Webm data URL: data:" then raise "Webm is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [81/80]
          Open

                      file = File.open(outLoc + "/bb-screenshot-#{Time.now.to_f}.png", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [98/80]
          Open

                      log.info("Screenshot received (size #{msg.length}) from #{ws}. Saved to #{file.path}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [86/80]
          Open

                      Bbs::PrintColor.print_error("Error saving response to file: " + e.message)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for method names.
          Open

              def setSelected(newSelected)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 array literal [] instead of Array.new.
          Open

              @@wsList = Array.new
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks for the use of a method, the result of which would be a literal, like an empty array, hash or string.

          Example:

          # bad
          a = Array.new
          h = Hash.new
          s = String.new
          
          # good
          a = []
          h = {}
          s = ''

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

                      if encodedImage == "" then raise "Screenshot is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      Bbs::PrintColor.print_error("Error saving response to file: " + e.message)
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      "}"\
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      "catch(err) {"\
          Severity: Minor
          Found in server/lib/bbs/websocket.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 empty lines between method definitions.
          Open

              def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks whether method definitions are separated by one empty line.

          NumberOfEmptyLines can be and integer (e.g. 1 by default) or an array (e.g. [1, 2]) to specificy a minimum and a maximum of empty lines.

          AllowAdjacentOneLineDefs can be used to configure is adjacent one line methods definitions are an offense

          Example:

          # bad
          def a
          end
          def b
          end

          Example:

          # good
          def a
          end
          
          def b
          end

          Indent the right brace the same as the first position after the preceding left parenthesis.
          Open

                      }) do |ws|
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cops checks the indentation of the first key in a hash literal where the opening brace and the first key are on separate lines. The other keys' indentations are handled by the AlignHash cop.

          By default, Hash literals that are arguments in a method call with parentheses, and where the opening curly brace of the hash is on the same line as the opening parenthesis of the method call, shall have their first key indented one step (two spaces) more than the position inside the opening parenthesis.

          Other hash literals shall have their first key indented one step more than the start of the line where the opening curly brace is.

          This default style is called 'specialinsideparentheses'. Alternative styles are 'consistent' and 'align_braces'. Here are examples:

          Example: EnforcedStyle: specialinsideparentheses (default)

          # The `special_inside_parentheses` style enforces that the first key
          # in a hash literal where the opening brace and the first key are on
          # separate lines is indented one step (two spaces) more than the
          # position inside the opening parentheses.
          
          # bad
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
                               })
          
          # good
          special_inside_parentheses
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                               })

          Example: EnforcedStyle: consistent

          # The `consistent` style enforces that the first key in a hash
          # literal where the opening brace and the first key are on
          # seprate lines is indented the same as a hash literal which is not
          # defined inside a method call.
          
          # bad
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                                })
          
          # good
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
          })

          Example: EnforcedStyle: align_braces

          # The `align_brackets` style enforces that the opening and closing
          # braces are indented to the same position.
          
          # bad
          and_now_for_something = {
                                    completely: :different
          }
          
          # good
          and_now_for_something = {
                                    completely: :different
                                  }

          Line is too long. [85/80]
          Open

                              Bbs::WebSocket.detectResult(msg, ws, log, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [139/80]
          Open

                      Bbs::PrintColor.print_notice("Response received but is too large to display (#{msg.length} characters). Saved to #{file.path}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [85/80]
          Open

                      Bbs::PrintColor.print_error("Valid sessions will never be less than -1.")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for method names.
          Open

              def self.validSession?(selected, wsList)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Missing top-level class documentation comment.
          Open

          class WebSocket
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use the new Ruby 1.9 hash syntax.
          Open

                          :tls_options => {
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks hash literal syntax.

          It can enforce either the use of the class hash rocket syntax or the use of the newer Ruby 1.9 syntax (when applicable).

          A separate offense is registered for each problematic pair.

          The supported styles are:

          • ruby19 - forces use of the 1.9 syntax (e.g. {a: 1}) when hashes have all symbols for keys
          • hash_rockets - forces use of hash rockets for all hashes
          • nomixedkeys - simply checks for hashes with mixed syntaxes
          • ruby19nomixed_keys - forces use of ruby 1.9 syntax and forbids mixed syntax hashes

          Example: EnforcedStyle: ruby19 (default)

          # bad
          {:a => 2}
          {b: 1, :c => 2}
          
          # good
          {a: 2, b: 1}
          {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
          {d: 1, 'e' => 2} # technically not forbidden

          Example: EnforcedStyle: hash_rockets

          # bad
          {a: 1, b: 2}
          {c: 1, 'd' => 5}
          
          # good
          {:a => 1, :b => 2}

          Example: EnforcedStyle: nomixedkeys

          # bad
          {:a => 1, b: 2}
          {c: 1, 'd' => 2}
          
          # good
          {:a => 1, :b => 2}
          {c: 1, d: 2}

          Example: EnforcedStyle: ruby19nomixed_keys

          # bad
          {:a => 1, :b => 2}
          {c: 2, 'd' => 3} # should just use hash rockets
          
          # good
          {a: 1, b: 2}
          {:c => 3, 'd' => 4}

          Redundant return detected.
          Open

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

          Redundant return detected.
          Open

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

          Redundant return detected.
          Open

                  return true
          Severity: Minor
          Found in server/lib/bbs/websocket.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 single-quoted strings when you don't need string interpolation or special symbols.
          Open

                  if msg.start_with?("Screenshot data URL: data:image/png;base64,")
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      encodedImage = msg.gsub(/Screenshot data URL: data:image\/png;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      Bbs::PrintColor.print_error("Valid sessions will never be less than -1.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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/websocket.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

                      Bbs::PrintColor.print_notice("Response received: #{msg}")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  command = ""\
          Severity: Minor
          Found in server/lib/bbs/websocket.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. [112/80]
          Open

                      Bbs::PrintColor.print_notice("Webm received (size #{msg.length} characters). Saved to #{file.path}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [87/80]
          Open

                      encodedImage = msg.gsub(/Screenshot data URL: data:image\/png;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [148/80]
          Open

                      Bbs::PrintColor.print_notice("Large response received (#{msg.length} characters) but could not save to file, displaying anyway: " + msg)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for variable names.
          Open

              def self.writeScreenshot(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 @@selected with a class instance var.
          Open

              @@selected = -1
          Severity: Minor
          Found in server/lib/bbs/websocket.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 %r around regular expression.
          Open

                      if msg.match(/Webm data URL: data:audio\/webm;base64,/)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop enforces using // or %r around regular expressions.

          Example: EnforcedStyle: slashes (default)

          # bad
          snake_case = %r{^[\dA-Z_]+$}
          
          # bad
          regex = %r{
            foo
            (bar)
            (baz)
          }x
          
          # good
          snake_case = /^[\dA-Z_]+$/
          
          # good
          regex = /
            foo
            (bar)
            (baz)
          /x

          Example: EnforcedStyle: percent_r

          # bad
          snake_case = /^[\dA-Z_]+$/
          
          # bad
          regex = /
            foo
            (bar)
            (baz)
          /x
          
          # good
          snake_case = %r{^[\dA-Z_]+$}
          
          # good
          regex = %r{
            foo
            (bar)
            (baz)
          }x

          Example: EnforcedStyle: mixed

          # bad
          snake_case = %r{^[\dA-Z_]+$}
          
          # bad
          regex = /
            foo
            (bar)
            (baz)
          /x
          
          # good
          snake_case = /^[\dA-Z_]+$/
          
          # good
          regex = %r{
            foo
            (bar)
            (baz)
          }x

          Example: AllowInnerSlashes: false (default)

          # If `false`, the cop will always recommend using `%r` if one or more
          # slashes are found in the regexp string.
          
          # bad
          x =~ /home\//
          
          # good
          x =~ %r{home/}

          Example: AllowInnerSlashes: true

          # good
          x =~ /home\//

          Avoid rescuing without specifying an error class.
          Open

                  rescue => e
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Line is too long. [81/80]
          Open

                          file = File.open(outLoc + "/bb-audio-#{Time.now.to_f}.webm", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for method names.
          Open

              def getSelected()
          Severity: Minor
          Found in server/lib/bbs/websocket.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 snake_case for method names.
          Open

              def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 snake_case for method names.
          Open

              def self.detectResult(msg, ws, log, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  return @@wsList
          Severity: Minor
          Found in server/lib/bbs/websocket.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 @@wsList with a class instance var.
          Open

              @@wsList = Array.new
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                              open_message = "WebSocket connection open: #{ws} from " + Bbs::WebSocket.convertIP(ws)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 @@selected with a class instance var.
          Open

                  @@selected = newSelected
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      return ws.get_peername[2,6].unpack('nC4')[1..4].join('.')
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("Session does not exist.")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

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

                      "ws.send(err.message);"\
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

          Line is too long. [86/80]
          Open

              def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [87/80]
          Open

                      log.error("Unable to convert #{ws} to IP address with error: #{e.message}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for variable names.
          Open

              def self.detectResult(msg, ws, log, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Redundant begin block detected.
          Open

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

          This cop checks for redundant begin blocks.

          Currently it checks for code like this:

          Example:

          def redundant
            begin
              ala
              bala
            rescue StandardError => e
              something
            end
          end
          
          def preferred
            ala
            bala
          rescue StandardError => e
            something
          end

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

                      if encodedWebm == "" || encodedWebm == "Webm data URL: data:" then raise "Webm is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                          ws.onopen { |_handshake|
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  begin
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::PrintColor.print_error("Error saving response to file: " + e.message)
          Severity: Minor
          Found in server/lib/bbs/websocket.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. [152/80]
          Open

                      log.error("Encoded screenshot received (size #{msg.length}) from #{ws} but could not convert to PNG automatically with error: #{e.message}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for variable names.
          Open

              def self.writeWebm(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use snake_case for variable names.
          Open

                      encodedWebm = msg.gsub(/Webm data URL: data:(audio|video)\/webm;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Avoid comparing a variable with multiple items in a conditional, use Array#include? instead.
          Open

                      if encodedWebm == "" || encodedWebm == "Webm data URL: data:" then raise "Webm is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks against comparing a variable with multiple items, where Array#include? could be used instead to avoid code repetition.

          Example:

          # bad
          a = 'a'
          foo if a == 'a' || a == 'b' || a == 'c'
          
          # good
          a = 'a'
          foo if ['a', 'b', 'c'].include?(a)

          Use %r around regular expression.
          Open

                      encodedImage = msg.gsub(/Screenshot data URL: data:image\/png;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop enforces using // or %r around regular expressions.

          Example: EnforcedStyle: slashes (default)

          # bad
          snake_case = %r{^[\dA-Z_]+$}
          
          # bad
          regex = %r{
            foo
            (bar)
            (baz)
          }x
          
          # good
          snake_case = /^[\dA-Z_]+$/
          
          # good
          regex = /
            foo
            (bar)
            (baz)
          /x

          Example: EnforcedStyle: percent_r

          # bad
          snake_case = /^[\dA-Z_]+$/
          
          # bad
          regex = /
            foo
            (bar)
            (baz)
          /x
          
          # good
          snake_case = %r{^[\dA-Z_]+$}
          
          # good
          regex = %r{
            foo
            (bar)
            (baz)
          }x

          Example: EnforcedStyle: mixed

          # bad
          snake_case = %r{^[\dA-Z_]+$}
          
          # bad
          regex = /
            foo
            (bar)
            (baz)
          /x
          
          # good
          snake_case = /^[\dA-Z_]+$/
          
          # good
          regex = %r{
            foo
            (bar)
            (baz)
          }x

          Example: AllowInnerSlashes: false (default)

          # If `false`, the cop will always recommend using `%r` if one or more
          # slashes are found in the regexp string.
          
          # bad
          x =~ /home\//
          
          # good
          x =~ %r{home/}

          Example: AllowInnerSlashes: true

          # good
          x =~ /home\//

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

                      "), 0);"
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                              Bbs::WebSocket.detectResult(msg, ws, log, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  begin
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  if msg.start_with?("Screenshot data URL: data:image/png;base64,")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                      Bbs::WebSocket.writeScreenshot(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  begin
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                          file = File.open(outLoc + "/bb-video-#{Time.now.to_f}.webm", "w")
          Severity: Minor
          Found in server/lib/bbs/websocket.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

                  begin
          Severity: Minor
          Found in server/lib/bbs/websocket.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 spaces for indentation in a hash, relative to the first position after the preceding left parenthesis.
          Open

                          :host => host,
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cops checks the indentation of the first key in a hash literal where the opening brace and the first key are on separate lines. The other keys' indentations are handled by the AlignHash cop.

          By default, Hash literals that are arguments in a method call with parentheses, and where the opening curly brace of the hash is on the same line as the opening parenthesis of the method call, shall have their first key indented one step (two spaces) more than the position inside the opening parenthesis.

          Other hash literals shall have their first key indented one step more than the start of the line where the opening curly brace is.

          This default style is called 'specialinsideparentheses'. Alternative styles are 'consistent' and 'align_braces'. Here are examples:

          Example: EnforcedStyle: specialinsideparentheses (default)

          # The `special_inside_parentheses` style enforces that the first key
          # in a hash literal where the opening brace and the first key are on
          # separate lines is indented one step (two spaces) more than the
          # position inside the opening parentheses.
          
          # bad
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
                               })
          
          # good
          special_inside_parentheses
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                               })

          Example: EnforcedStyle: consistent

          # The `consistent` style enforces that the first key in a hash
          # literal where the opening brace and the first key are on
          # seprate lines is indented the same as a hash literal which is not
          # defined inside a method call.
          
          # bad
          hash = {
            key: :value
          }
          but_in_a_method_call({
                                 its_like: :this
                                })
          
          # good
          hash = {
            key: :value
          }
          and_in_a_method_call({
            no: :difference
          })

          Example: EnforcedStyle: align_braces

          # The `align_brackets` style enforces that the opening and closing
          # braces are indented to the same position.
          
          # bad
          and_now_for_something = {
                                    completely: :different
          }
          
          # good
          and_now_for_something = {
                                    completely: :different
                                  }

          Line is too long. [118/80]
          Open

                      Bbs::PrintColor.print_notice("Screenshot received (size #{msg.length} characters). Saved to #{file.path}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Line is too long. [136/80]
          Open

                      log.error("Too large response recieved (size #{msg.length}) from #{ws} but could not save to file with error: #{e.message}")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          Use snake_case for method names.
          Open

              def self.writeResult(msg, ws, log, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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 snake_case for variable names.
          Open

              def startEM(log, host, port, secure, priv_key, cert_chain, response_limit, outLoc)
          Severity: Minor
          Found in server/lib/bbs/websocket.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

          Use the new Ruby 1.9 hash syntax.
          Open

                          :secure => secure,
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop checks hash literal syntax.

          It can enforce either the use of the class hash rocket syntax or the use of the newer Ruby 1.9 syntax (when applicable).

          A separate offense is registered for each problematic pair.

          The supported styles are:

          • ruby19 - forces use of the 1.9 syntax (e.g. {a: 1}) when hashes have all symbols for keys
          • hash_rockets - forces use of hash rockets for all hashes
          • nomixedkeys - simply checks for hashes with mixed syntaxes
          • ruby19nomixed_keys - forces use of ruby 1.9 syntax and forbids mixed syntax hashes

          Example: EnforcedStyle: ruby19 (default)

          # bad
          {:a => 2}
          {b: 1, :c => 2}
          
          # good
          {a: 2, b: 1}
          {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
          {d: 1, 'e' => 2} # technically not forbidden

          Example: EnforcedStyle: hash_rockets

          # bad
          {a: 1, b: 2}
          {c: 1, 'd' => 5}
          
          # good
          {:a => 1, :b => 2}

          Example: EnforcedStyle: nomixedkeys

          # bad
          {:a => 1, b: 2}
          {c: 1, 'd' => 2}
          
          # good
          {:a => 1, :b => 2}
          {c: 1, d: 2}

          Example: EnforcedStyle: ruby19nomixed_keys

          # bad
          {:a => 1, :b => 2}
          {c: 2, 'd' => 3} # should just use hash rockets
          
          # good
          {a: 1, b: 2}
          {:c => 3, 'd' => 4}

          Redundant begin block detected.
          Open

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

          This cop checks for redundant begin blocks.

          Currently it checks for code like this:

          Example:

          def redundant
            begin
              ala
              bala
            rescue StandardError => e
              something
            end
          end
          
          def preferred
            ala
            bala
          rescue StandardError => e
            something
          end

          Use %r around regular expression.
          Open

                      encodedWebm = msg.gsub(/Webm data URL: data:(audio|video)\/webm;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.rb by rubocop

          This cop enforces using // or %r around regular expressions.

          Example: EnforcedStyle: slashes (default)

          # bad
          snake_case = %r{^[\dA-Z_]+$}
          
          # bad
          regex = %r{
            foo
            (bar)
            (baz)
          }x
          
          # good
          snake_case = /^[\dA-Z_]+$/
          
          # good
          regex = /
            foo
            (bar)
            (baz)
          /x

          Example: EnforcedStyle: percent_r

          # bad
          snake_case = /^[\dA-Z_]+$/
          
          # bad
          regex = /
            foo
            (bar)
            (baz)
          /x
          
          # good
          snake_case = %r{^[\dA-Z_]+$}
          
          # good
          regex = %r{
            foo
            (bar)
            (baz)
          }x

          Example: EnforcedStyle: mixed

          # bad
          snake_case = %r{^[\dA-Z_]+$}
          
          # bad
          regex = /
            foo
            (bar)
            (baz)
          /x
          
          # good
          snake_case = /^[\dA-Z_]+$/
          
          # good
          regex = %r{
            foo
            (bar)
            (baz)
          }x

          Example: AllowInnerSlashes: false (default)

          # If `false`, the cop will always recommend using `%r` if one or more
          # slashes are found in the regexp string.
          
          # bad
          x =~ /home\//
          
          # good
          x =~ %r{home/}

          Example: AllowInnerSlashes: true

          # good
          x =~ /home\//

          Avoid rescuing without specifying an error class.
          Open

                  rescue => e
          Severity: Minor
          Found in server/lib/bbs/websocket.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

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

                      encodedWebm = msg.gsub(/Webm data URL: data:(audio|video)\/webm;base64,/, "")
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

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

                      if encodedImage == "" then raise "Screenshot is empty" end
          Severity: Minor
          Found in server/lib/bbs/websocket.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"

          There are no issues that match your filters.

          Category
          Status