ClusterLabs/hawk

View on GitHub
hawk/app/models/cib.rb

Summary

Maintainability
F
2 wks
Test Coverage

Assignment Branch Condition size for initialize is too high. [676.6/15]
Open

  def initialize(id, user, pass, use_file = false, stonithwarning = false)
    Rails.logger.debug "Cib.initialize #{id}, #{user}, #{use_file}"

    if use_file
      cib_path = id
Severity: Minor
Found in hawk/app/models/cib.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. [545/30]
Open

  def initialize(id, user, pass, use_file = false, stonithwarning = false)
    Rails.logger.debug "Cib.initialize #{id}, #{user}, #{use_file}"

    if use_file
      cib_path = id
Severity: Minor
Found in hawk/app/models/cib.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.

Class has too many lines. [1008/300]
Open

class Cib
  extend ActiveModel::Naming
  include ActiveModel::Conversion
  include FastGettext::Translation
  include Rails.application.routes.url_helpers # needed for routes
Severity: Minor
Found in hawk/app/models/cib.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 initialize has a Cognitive Complexity of 281 (exceeds 5 allowed). Consider refactoring.
Open

  def initialize(id, user, pass, use_file = false, stonithwarning = false)
    Rails.logger.debug "Cib.initialize #{id}, #{user}, #{use_file}"

    if use_file
      cib_path = id
Severity: Minor
Found in hawk/app/models/cib.rb - About 5 days to fix

Cognitive Complexity

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

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

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

Further reading

Method initialize has 545 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  def initialize(id, user, pass, use_file = false, stonithwarning = false)
    Rails.logger.debug "Cib.initialize #{id}, #{user}, #{use_file}"

    if use_file
      cib_path = id
Severity: Major
Found in hawk/app/models/cib.rb - About 2 days to fix

    File cib.rb has 1042 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    require 'util'
    require 'cibtools'
    require 'string'
    require 'rexml/document' unless defined? REXML::Document
    require 'rexml/xpath' unless defined? REXML::XPath
    Severity: Major
    Found in hawk/app/models/cib.rb - About 2 days to fix

      Perceived complexity for initialize is too high. [124/7]
      Open

        def initialize(id, user, pass, use_file = false, stonithwarning = false)
          Rails.logger.debug "Cib.initialize #{id}, #{user}, #{use_file}"
      
          if use_file
            cib_path = id
      Severity: Minor
      Found in hawk/app/models/cib.rb by rubocop

      This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

      Example:

      def my_method                   # 1
        if cond                       # 1
          case var                    # 2 (0.8 + 4 * 0.2, rounded)
          when 1 then func_one
          when 2 then func_two
          when 3 then func_three
          when 4..10 then func_other
          end
        else                          # 1
          do_something until a && b   # 2
        end                           # ===
      end                             # 7 complexity points

      Cyclomatic complexity for initialize is too high. [119/6]
      Open

        def initialize(id, user, pass, use_file = false, stonithwarning = false)
          Rails.logger.debug "Cib.initialize #{id}, #{user}, #{use_file}"
      
          if use_file
            cib_path = id
      Severity: Minor
      Found in hawk/app/models/cib.rb by rubocop

      This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

      An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

      Assignment Branch Condition size for get_resource is too high. [75.49/15]
      Open

        def get_resource(elem, is_managed = true, maintenance = false, clone_max = nil, is_ms = false)
          res = {
            id: elem.attributes['id'],
            object_type: elem.name,
            attributes: {},
      Severity: Minor
      Found in hawk/app/models/cib.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 update_resource_state is too high. [65.3/15]
      Open

        def update_resource_state(resource, node, instance, state, substate, failed_ops)
          # m/s slave state hack (*sigh*)
          state = :slave if resource[:is_ms] && state == :started
          instances = resource[:instances]
      
      
      Severity: Minor
      Found in hawk/app/models/cib.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 fix_clone_instances is too high. [63.45/15]
      Open

        def fix_clone_instances(rsclist)
          rsclist.each do |res|
            if res[:clone_max]
              # There'll be a stale default instance lying around if the resource was
              # started before it was cloned (bnc#711180), so ditch it.  This is all
      Severity: Minor
      Found in hawk/app/models/cib.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 fix_resource_states has a Cognitive Complexity of 43 (exceeds 5 allowed). Consider refactoring.
      Open

        def fix_resource_states(rsclist)
          prio = {
            unknown: 0,
            stopped: 1,
            started: 2,
      Severity: Minor
      Found in hawk/app/models/cib.rb - About 6 hrs to fix

      Cognitive Complexity

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

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

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

      Further reading

      Assignment Branch Condition size for fix_resource_states is too high. [55.24/15]
      Open

        def fix_resource_states(rsclist)
          prio = {
            unknown: 0,
            stopped: 1,
            started: 2,
      Severity: Minor
      Found in hawk/app/models/cib.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 check_drbd_status is too high. [44.15/15]
      Open

        def check_drbd_status
          # if there are any running drbd resources on this node and a drbdadm command,
          # check drbdadm status
          # do we need sudo to do it?
          me = Socket.gethostname
      Severity: Minor
      Found in hawk/app/models/cib.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 fix_clone_instances has a Cognitive Complexity of 31 (exceeds 5 allowed). Consider refactoring.
      Open

        def fix_clone_instances(rsclist)
          rsclist.each do |res|
            if res[:clone_max]
              # There'll be a stale default instance lying around if the resource was
              # started before it was cloned (bnc#711180), so ditch it.  This is all
      Severity: Minor
      Found in hawk/app/models/cib.rb - About 4 hrs to fix

      Cognitive Complexity

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

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

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

      Further reading

      Method check_drbd_status has a Cognitive Complexity of 30 (exceeds 5 allowed). Consider refactoring.
      Open

        def check_drbd_status
          # if there are any running drbd resources on this node and a drbdadm command,
          # check drbdadm status
          # do we need sudo to do it?
          me = Socket.gethostname
      Severity: Minor
      Found in hawk/app/models/cib.rb - About 4 hrs to fix

      Cognitive Complexity

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

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

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

      Further reading

      Perceived complexity for update_resource_state is too high. [27/7]
      Open

        def update_resource_state(resource, node, instance, state, substate, failed_ops)
          # m/s slave state hack (*sigh*)
          state = :slave if resource[:is_ms] && state == :started
          instances = resource[:instances]
      
      
      Severity: Minor
      Found in hawk/app/models/cib.rb by rubocop

      This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

      Example:

      def my_method                   # 1
        if cond                       # 1
          case var                    # 2 (0.8 + 4 * 0.2, rounded)
          when 1 then func_one
          when 2 then func_two
          when 3 then func_three
          when 4..10 then func_other
          end
        else                          # 1
          do_something until a && b   # 2
        end                           # ===
      end                             # 7 complexity points

      Cyclomatic complexity for update_resource_state is too high. [25/6]
      Open

        def update_resource_state(resource, node, instance, state, substate, failed_ops)
          # m/s slave state hack (*sigh*)
          state = :slave if resource[:is_ms] && state == :started
          instances = resource[:instances]
      
      
      Severity: Minor
      Found in hawk/app/models/cib.rb by rubocop

      This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

      An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

      Method has too many lines. [48/30]
      Open

        def get_resource(elem, is_managed = true, maintenance = false, clone_max = nil, is_ms = false)
          res = {
            id: elem.attributes['id'],
            object_type: elem.name,
            attributes: {},
      Severity: Minor
      Found in hawk/app/models/cib.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. [48/30]
      Open

        def fix_resource_states(rsclist)
          prio = {
            unknown: 0,
            stopped: 1,
            started: 2,
      Severity: Minor
      Found in hawk/app/models/cib.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.

      Class Cib has 30 methods (exceeds 20 allowed). Consider refactoring.
      Open

      class Cib
        extend ActiveModel::Naming
        include ActiveModel::Conversion
        include FastGettext::Translation
        include Rails.application.routes.url_helpers # needed for routes
      Severity: Minor
      Found in hawk/app/models/cib.rb - About 3 hrs to fix

        Assignment Branch Condition size for get_constraint is too high. [28.32/15]
        Open

          def get_constraint(elem)
            objtype = {
              rsc_location: :location,
              rsc_colocation: :colocation,
              rsc_order: :order,
        Severity: Minor
        Found in hawk/app/models/cib.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

        Perceived complexity for fix_clone_instances is too high. [18/7]
        Open

          def fix_clone_instances(rsclist)
            rsclist.each do |res|
              if res[:clone_max]
                # There'll be a stale default instance lying around if the resource was
                # started before it was cloned (bnc#711180), so ditch it.  This is all
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

        Example:

        def my_method                   # 1
          if cond                       # 1
            case var                    # 2 (0.8 + 4 * 0.2, rounded)
            when 1 then func_one
            when 2 then func_two
            when 3 then func_three
            when 4..10 then func_other
            end
          else                          # 1
            do_something until a && b   # 2
          end                           # ===
        end                             # 7 complexity points

        Cyclomatic complexity for fix_clone_instances is too high. [17/6]
        Open

          def fix_clone_instances(rsclist)
            rsclist.each do |res|
              if res[:clone_max]
                # There'll be a stale default instance lying around if the resource was
                # started before it was cloned (bnc#711180), so ditch it.  This is all
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

        An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

        Method get_resource has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
        Open

          def get_resource(elem, is_managed = true, maintenance = false, clone_max = nil, is_ms = false)
            res = {
              id: elem.attributes['id'],
              object_type: elem.name,
              attributes: {},
        Severity: Minor
        Found in hawk/app/models/cib.rb - About 2 hrs to fix

        Cognitive Complexity

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

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

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

        Further reading

        Method update_resource_state has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
        Open

          def update_resource_state(resource, node, instance, state, substate, failed_ops)
            # m/s slave state hack (*sigh*)
            state = :slave if resource[:is_ms] && state == :started
            instances = resource[:instances]
        
        
        Severity: Minor
        Found in hawk/app/models/cib.rb - About 2 hrs to fix

        Cognitive Complexity

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

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

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

        Further reading

        Cyclomatic complexity for get_resource is too high. [16/6]
        Open

          def get_resource(elem, is_managed = true, maintenance = false, clone_max = nil, is_ms = false)
            res = {
              id: elem.attributes['id'],
              object_type: elem.name,
              attributes: {},
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

        An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

        Cyclomatic complexity for fix_resource_states is too high. [16/6]
        Open

          def fix_resource_states(rsclist)
            prio = {
              unknown: 0,
              stopped: 1,
              started: 2,
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

        An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

        Method has too many lines. [40/30]
        Open

          def update_resource_state(resource, node, instance, state, substate, failed_ops)
            # m/s slave state hack (*sigh*)
            state = :slave if resource[:is_ms] && state == :started
            instances = resource[:instances]
        
        
        Severity: Minor
        Found in hawk/app/models/cib.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.

        Perceived complexity for fix_resource_states is too high. [16/7]
        Open

          def fix_resource_states(rsclist)
            prio = {
              unknown: 0,
              stopped: 1,
              started: 2,
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

        Example:

        def my_method                   # 1
          if cond                       # 1
            case var                    # 2 (0.8 + 4 * 0.2, rounded)
            when 1 then func_one
            when 2 then func_two
            when 3 then func_three
            when 4..10 then func_other
            end
          else                          # 1
            do_something until a && b   # 2
          end                           # ===
        end                             # 7 complexity points

        Perceived complexity for get_resource is too high. [16/7]
        Open

          def get_resource(elem, is_managed = true, maintenance = false, clone_max = nil, is_ms = false)
            res = {
              id: elem.attributes['id'],
              object_type: elem.name,
              attributes: {},
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

        Example:

        def my_method                   # 1
          if cond                       # 1
            case var                    # 2 (0.8 + 4 * 0.2, rounded)
            when 1 then func_one
            when 2 then func_two
            when 3 then func_three
            when 4..10 then func_other
            end
          else                          # 1
            do_something until a && b   # 2
          end                           # ===
        end                             # 7 complexity points

        Perceived complexity for check_drbd_status is too high. [15/7]
        Open

          def check_drbd_status
            # if there are any running drbd resources on this node and a drbdadm command,
            # check drbdadm status
            # do we need sudo to do it?
            me = Socket.gethostname
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

        Example:

        def my_method                   # 1
          if cond                       # 1
            case var                    # 2 (0.8 + 4 * 0.2, rounded)
            when 1 then func_one
            when 2 then func_two
            when 3 then func_three
            when 4..10 then func_other
            end
          else                          # 1
            do_something until a && b   # 2
          end                           # ===
        end                             # 7 complexity points

        Cyclomatic complexity for check_drbd_status is too high. [13/6]
        Open

          def check_drbd_status
            # if there are any running drbd resources on this node and a drbdadm command,
            # check drbdadm status
            # do we need sudo to do it?
            me = Socket.gethostname
        Severity: Minor
        Found in hawk/app/models/cib.rb by rubocop

        This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

        An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

        Assignment Branch Condition size for find_node is too high. [21.59/15]
        Open

          def find_node(node_id)
            fail(RecordNotFound, _('CIB offline: %s=%s') % ["id", node_id]) if @xml.nil?
        
            state = @nodes.select { |n| n[:id] == node_id || n[:uname] == node_id }
            fail(RecordNotFound, _('Node state not found: %s=%s') % ["id", node_id]) if state.blank?
        Severity: Minor
        Found in hawk/app/models/cib.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 status is too high. [20/15]
        Open

          def status()
            {
              meta: meta,
              errors: errors,
              booth: booth
        Severity: Minor
        Found in hawk/app/models/cib.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. [34/30]
        Open

          def fix_clone_instances(rsclist)
            rsclist.each do |res|
              if res[:clone_max]
                # There'll be a stale default instance lying around if the resource was
                # started before it was cloned (bnc#711180), so ditch it.  This is all
        Severity: Minor
        Found in hawk/app/models/cib.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 meta is too high. [18.06/15]
        Open

          def meta
            @meta ||= begin
              struct = {}
        
              @xml.root.attributes.each do |n, v|
        Severity: Minor
        Found in hawk/app/models/cib.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 get_resource has 48 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

          def get_resource(elem, is_managed = true, maintenance = false, clone_max = nil, is_ms = false)
            res = {
              id: elem.attributes['id'],
              object_type: elem.name,
              attributes: {},
        Severity: Minor
        Found in hawk/app/models/cib.rb - About 1 hr to fix

          Method fix_resource_states has 48 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

            def fix_resource_states(rsclist)
              prio = {
                unknown: 0,
                stopped: 1,
                started: 2,
          Severity: Minor
          Found in hawk/app/models/cib.rb - About 1 hr to fix

            Assignment Branch Condition size for inject_default_instance is too high. [17.75/15]
            Open

              def inject_default_instance
                @resources_by_id.each do |k, _|
                  @resources_by_id[k].delete :is_ms
                  # Need to inject a default instance if we don't have any state
                  # (e.g. during cluster bringup) else the panel renderer chokes.
            Severity: Minor
            Found in hawk/app/models/cib.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. [31/30]
            Open

              def check_drbd_status
                # if there are any running drbd resources on this node and a drbdadm command,
                # check drbdadm status
                # do we need sudo to do it?
                me = Socket.gethostname
            Severity: Minor
            Found in hawk/app/models/cib.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 update_resource_state has 40 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

              def update_resource_state(resource, node, instance, state, substate, failed_ops)
                # m/s slave state hack (*sigh*)
                state = :slave if resource[:is_ms] && state == :started
                instances = resource[:instances]
            
            
            Severity: Minor
            Found in hawk/app/models/cib.rb - About 1 hr to fix

              Method fix_clone_instances has 34 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                def fix_clone_instances(rsclist)
                  rsclist.each do |res|
                    if res[:clone_max]
                      # There'll be a stale default instance lying around if the resource was
                      # started before it was cloned (bnc#711180), so ditch it.  This is all
              Severity: Minor
              Found in hawk/app/models/cib.rb - About 1 hr to fix

                Consider simplifying this complex logical expression.
                Open

                    if instance && state != :stopped && state != :unknown
                      # For clones, it's possible we need to rename an instance if
                      # there's already a running instance with this ID.  An instance
                      # is running (or possibly failed, as after a failed stop) iff:
                      # - @resources_by_id[id][:instances][instance] exists, and,
                Severity: Critical
                Found in hawk/app/models/cib.rb - About 1 hr to fix

                  Method check_drbd_status has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                    def check_drbd_status
                      # if there are any running drbd resources on this node and a drbdadm command,
                      # check drbdadm status
                      # do we need sudo to do it?
                      me = Socket.gethostname
                  Severity: Minor
                  Found in hawk/app/models/cib.rb - About 1 hr to fix

                    Method fix_tag_states has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                      def fix_tag_states
                        prio = {
                          unknown: 0,
                          unmanaged: 1,
                          maintenance: 2,
                    Severity: Minor
                    Found in hawk/app/models/cib.rb - About 1 hr to fix

                      Method fix_tag_states has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
                      Open

                        def fix_tag_states
                          prio = {
                            unknown: 0,
                            unmanaged: 1,
                            maintenance: 2,
                      Severity: Minor
                      Found in hawk/app/models/cib.rb - About 55 mins to fix

                      Cognitive Complexity

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

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

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

                      Further reading

                      Method update_resource_state has 6 arguments (exceeds 4 allowed). Consider refactoring.
                      Open

                        def update_resource_state(resource, node, instance, state, substate, failed_ops)
                      Severity: Minor
                      Found in hawk/app/models/cib.rb - About 45 mins to fix

                        Avoid deeply nested control flow statements.
                        Open

                                    warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: curr_peer}) if warn_diskstates.include? m[1]
                        Severity: Major
                        Found in hawk/app/models/cib.rb - About 45 mins to fix

                          Avoid deeply nested control flow statements.
                          Open

                                    elsif m = /^  (\w+) connection:(\w+)$/.match(l)
                                      warning(_("DRBD connection for %{d} to %{n} is %{s}") % { d: curr, s: m[2], n: m[1]}) if warn_connectionstates.include? m[2]
                          Severity: Major
                          Found in hawk/app/models/cib.rb - About 45 mins to fix

                            Consider simplifying this complex logical expression.
                            Open

                                      if rc_code != expected && (!is_probe || (rc_code != 0 && rc_code != 7 && rc_code != 8))
                            
                                        # if on-fail == ignore for this op, pretend it succeeded for the purposes of state calculation
                                        ignore_failure = false
                                        @xml.elements.each("cib/configuration//primitive[@id='#{rsc_id.split(":")[0]}']/operations/op[@name='#{operation}']") do |e|
                            Severity: Major
                            Found in hawk/app/models/cib.rb - About 40 mins to fix

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

                                def initialize(id, user, pass, use_file = false, stonithwarning = false)
                              Severity: Minor
                              Found in hawk/app/models/cib.rb - About 35 mins to fix

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

                                  def get_resource(elem, is_managed = true, maintenance = false, clone_max = nil, is_ms = false)
                                Severity: Minor
                                Found in hawk/app/models/cib.rb - About 35 mins to fix

                                  Method primitives has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                  Open

                                    def primitives
                                      ret = []
                                      @resources.each do |r|
                                        if r.key? :children
                                          r[:children].each do |c|
                                  Severity: Minor
                                  Found in hawk/app/models/cib.rb - About 35 mins to fix

                                  Cognitive Complexity

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

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

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

                                  Further reading

                                  Method get_constraint has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                  Open

                                    def get_constraint(elem)
                                      objtype = {
                                        rsc_location: :location,
                                        rsc_colocation: :colocation,
                                        rsc_order: :order,
                                  Severity: Minor
                                  Found in hawk/app/models/cib.rb - About 35 mins to fix

                                  Cognitive Complexity

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

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

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

                                  Further reading

                                  Avoid too many return statements within this method.
                                  Open

                                          return
                                  Severity: Major
                                  Found in hawk/app/models/cib.rb - About 30 mins to fix

                                    Avoid too many return statements within this method.
                                    Open

                                            return
                                    Severity: Major
                                    Found in hawk/app/models/cib.rb - About 30 mins to fix

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

                                        def update_resource_state(resource, node, instance, state, substate, failed_ops)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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.

                                      Use each_value instead of each.
                                      Open

                                          @resources_by_id.each do |_name, r|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of each_key and each_value Hash methods.

                                      Note: If you have an array of two-element arrays, you can put parentheses around the block arguments to indicate that you're not working with a hash, and suppress RuboCop offenses.

                                      Example:

                                      # bad
                                      hash.keys.each { |k| p k }
                                      hash.values.each { |v| p v }
                                      hash.each { |k, _v| p k }
                                      hash.each { |_k, v| p v }
                                      
                                      # good
                                      hash.each_key { |k| p k }
                                      hash.each_value { |v| p v }

                                      Use each_value instead of each.
                                      Open

                                              resource[:instances].each do |_, states|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of each_key and each_value Hash methods.

                                      Note: If you have an array of two-element arrays, you can put parentheses around the block arguments to indicate that you're not working with a hash, and suppress RuboCop offenses.

                                      Example:

                                      # bad
                                      hash.keys.each { |k| p k }
                                      hash.values.each { |v| p v }
                                      hash.each { |k, _v| p k }
                                      hash.each { |_k, v| p v }
                                      
                                      # good
                                      hash.each_key { |k| p k }
                                      hash.each_value { |v| p v }

                                      Use each_key instead of each.
                                      Open

                                          @resources_by_id.each do |k, _|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of each_key and each_value Hash methods.

                                      Note: If you have an array of two-element arrays, you can put parentheses around the block arguments to indicate that you're not working with a hash, and suppress RuboCop offenses.

                                      Example:

                                      # bad
                                      hash.keys.each { |k| p k }
                                      hash.values.each { |v| p v }
                                      hash.each { |k, _v| p k }
                                      hash.each { |_k, v| p v }
                                      
                                      # good
                                      hash.each_key { |k| p k }
                                      hash.each_value { |v| p v }

                                      Use each_value instead of each.
                                      Open

                                          @tickets.each do |_, ticket|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of each_key and each_value Hash methods.

                                      Note: If you have an array of two-element arrays, you can put parentheses around the block arguments to indicate that you're not working with a hash, and suppress RuboCop offenses.

                                      Example:

                                      # bad
                                      hash.keys.each { |k| p k }
                                      hash.values.each { |v| p v }
                                      hash.each { |k, _v| p k }
                                      hash.each { |_k, v| p v }
                                      
                                      # good
                                      hash.each_key { |k| p k }
                                      hash.each_value { |v| p v }

                                      Use additions[:msg] = msg; additions[:type] = type instead of additions.merge! msg: msg, type: type.
                                      Open

                                          additions.merge! msg: msg, type: type
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop identifies places where Hash#merge! can be replaced by Hash#[]=.

                                      Example:

                                      hash.merge!(a: 1)
                                      hash.merge!({'key' => 'value'})
                                      hash.merge!(a: 1, b: 2)

                                      Use each_key instead of keys.each.
                                      Open

                                                prio.keys.each do |rstate|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of each_key and each_value Hash methods.

                                      Note: If you have an array of two-element arrays, you can put parentheses around the block arguments to indicate that you're not working with a hash, and suppress RuboCop offenses.

                                      Example:

                                      # bad
                                      hash.keys.each { |k| p k }
                                      hash.values.each { |v| p v }
                                      hash.each { |k, _v| p k }
                                      hash.each { |_k, v| p v }
                                      
                                      # good
                                      hash.each_key { |k| p k }
                                      hash.each_value { |v| p v }

                                      Use casecmp instead of downcase !=.
                                      Open

                                            if ticket[:state] == :revoked && (ticket[:leader] && ticket[:leader].downcase != "none")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop identifies places where a case-insensitive string comparison can better be implemented using casecmp.

                                      Example:

                                      # bad
                                      str.downcase == 'abc'
                                      str.upcase.eql? 'ABC'
                                      'abc' == str.downcase
                                      'ABC'.eql? str.upcase
                                      str.downcase == str.downcase
                                      
                                      # good
                                      str.casecmp('ABC').zero?
                                      'abc'.casecmp(str).zero?

                                      Similar blocks of code found in 2 locations. Consider refactoring.
                                      Open

                                            if bundle[:attributes].key?("maintenance")
                                              # A resource on maintenance is also flagged as unmanaged
                                              bundle[:maintenance] = Util.unstring(bundle[:attributes]["maintenance"], false)
                                              bundle[:is_managed] = false if bundle[:maintenance]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb and 1 other location - About 15 mins to fix
                                      hawk/app/models/cib.rb on lines 239..242

                                      Duplicated Code

                                      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                      Tuning

                                      This issue has a mass of 26.

                                      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                      Refactorings

                                      Further Reading

                                      Similar blocks of code found in 2 locations. Consider refactoring.
                                      Open

                                          if res[:attributes].key?("maintenance")
                                            # A resource on maintenance is also flagged as unmanaged
                                            res[:maintenance] = Util.unstring(res[:attributes]["maintenance"], false)
                                            res[:is_managed] = false if res[:maintenance]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb and 1 other location - About 15 mins to fix
                                      hawk/app/models/cib.rb on lines 750..753

                                      Duplicated Code

                                      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                      Tuning

                                      This issue has a mass of 26.

                                      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                      Refactorings

                                      Further Reading

                                      Use 2 spaces for indentation in a hash, relative to the start of the line where the left curly brace is.
                                      Open

                                                          node: node[:uname],
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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 between { and | missing.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Space inside } missing.
                                      Open

                                              error _('Permission denied for user %{user}') % {user: user}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Space inside { missing.
                                      Open

                                          @booth = {sites: [], arbitrators: [], tickets: [], me: nil}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition.
                                      Open

                                                elsif m = /^    peer-disk:(\w+)$/.match(l)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for assignments in the conditions of if/while/until.

                                      Example:

                                      # bad
                                      
                                      if some_var = true
                                        do_something
                                      end

                                      Example:

                                      # good
                                      
                                      if some_var == true
                                        do_something
                                      end

                                      Annotation keywords like Todo should be all upper case, followed by a colon, and a space, then a note describing the problem.
                                      Open

                                          # Todo: Bundle: This should be refactored to call a get_bundle method
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks that comment annotation keywords are written according to guidelines.

                                      Example:

                                      # bad
                                      # TODO make better
                                      
                                      # good
                                      # TODO: make better
                                      
                                      # bad
                                      # TODO:make better
                                      
                                      # good
                                      # TODO: make better
                                      
                                      # bad
                                      # fixme: does not work
                                      
                                      # good
                                      # FIXME: does not work
                                      
                                      # bad
                                      # Optimize does not work
                                      
                                      # good
                                      # OPTIMIZE: does not work

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                          fail(RecordNotFound, _('Node state not found: %s=%s') % ["id", node_id]) if state.blank?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                              error _('Permission denied for user %{user}') % {user: user}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Extra blank line detected.
                                      Open

                                      
                                         # add remote nodes that may not exist in cib/configuration/nodes/node
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cops checks for two or more consecutive blank lines.

                                      Example:

                                      # bad - It has two empty lines.
                                      some_method
                                      # one empty line
                                      # two empty lines
                                      some_method
                                      
                                      # good
                                      some_method
                                      # one empty line
                                      some_method

                                      Missing space after #.
                                      Open

                                            #raise RuntimeError, _('Unable to parse CIB file "%{path}"') % {path: cib_path } unless @xml.root
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks whether comments have a leading space after the # denoting the start of the comment. The leading space is not required for some RDoc special syntax, like #++, #--, #:nodoc, =begin- and =end comments, "shebang" directives, or rackup options.

                                      Example:

                                      # bad
                                      #Some comment
                                      
                                      # good
                                      # Some comment

                                      Use 4 (not 6) spaces for indenting a condition in a while statement spanning multiple lines.
                                      Open

                                                  instances[alt_i].count{|k,v| (k != :stopped && k != :unknown && k != :is_managed && k != :failed_ops && k != :maintenance)} > 0
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks the indentation of the right hand side operand in binary operations that span more than one line.

                                      Example:

                                      # bad
                                      if a +
                                      b
                                        something
                                      end
                                      
                                      # good
                                      if a +
                                         b
                                        something
                                      end

                                      Space between { and | missing.
                                      Open

                                          @nodes.sort!{|a,b| a[:uname].natcmp(b[:uname], true)}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Space between { and | missing.
                                      Open

                                                  instances[alt_i].count{|k,v| (k != :stopped && k != :unknown && k != :is_managed && k != :failed_ops && k != :maintenance)} > 0
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Space inside { missing.
                                      Open

                                              error _('Unable to execute %{cmd}') % {cmd: '/usr/sbin/crm_mon' }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition.
                                      Open

                                                elsif m = /^  (\w+)\s*role:(\w+)$/.match(l)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for assignments in the conditions of if/while/until.

                                      Example:

                                      # bad
                                      
                                      if some_var = true
                                        do_something
                                      end

                                      Example:

                                      # good
                                      
                                      if some_var == true
                                        do_something
                                      end

                                      Favor format over String#%.
                                      Open

                                            raise ArgumentError, _('CIB file "%{path}" not found') % { path: cib_path } unless File.exist?(cib_path)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Favor format over String#%.
                                      Open

                                              error _('Permission denied for user %{user}') % {user: user}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Favor format over String#%.
                                      Open

                                              error _('Node "%{node}" is UNCLEAN and needs to be fenced.') % { node: "<strong>#{n[:uname]}</strong>".html_safe }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                              error _('Error invoking %{cmd}: %{msg}') % {cmd: '/usr/sbin/cibadmin -Ql', msg: err }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Extra empty line detected at block body beginning.
                                      Open

                                      
                                            # Figure out which type of container
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example: EnforcedStyle: empty_lines

                                      # good
                                      
                                      foo do |bar|
                                      
                                        # ...
                                      
                                      end

                                      Example: EnforcedStyle: noemptylines (default)

                                      # good
                                      
                                      foo do |bar|
                                        # ...
                                      end

                                      Favor format over String#%.
                                      Open

                                              error _('Unable to execute %{cmd}') % {cmd: '/usr/sbin/crm_mon' }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Favor format over String#%.
                                      Open

                                                  warning(_("DRBD connection for %{d} to %{n} is %{s}") % { d: curr, s: m[2], n: m[1]}) if warn_connectionstates.include? m[2]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                              error _('Pacemaker does not appear to be installed (%{cmd} not found)') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Space missing inside }.
                                      Open

                                          @nodes.sort!{|a,b| a[:uname].natcmp(b[:uname], true)}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Favor format over String#%.
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: curr_peer}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Space missing inside }.
                                      Open

                                              res[:instances].keys.select{|i| i.to_s.to_i >= res[:clone_max]}.each do |k|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Space inside { missing.
                                      Open

                                              error _('Permission denied for user %{user}') % {user: user}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Do not use empty case condition, instead use an if expression.
                                      Open

                                          case
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for case statements with an empty condition.

                                      Example:

                                      # bad:
                                      case
                                      when x == 0
                                        puts 'x is 0'
                                      when y == 0
                                        puts 'y is 0'
                                      else
                                        puts 'neither is 0'
                                      end
                                      
                                      # good:
                                      if x == 0
                                        puts 'x is 0'
                                      elsif y == 0
                                        puts 'y is 0'
                                      else
                                        puts 'neither is 0'
                                      end
                                      
                                      # good: (the case condition node is not empty)
                                      case n
                                      when 0
                                        puts 'zero'
                                      when 1
                                        puts 'one'
                                      else
                                        puts 'more'
                                      end

                                      Favor format over String#%.
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: me}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Extra empty line detected at block body end.
                                      Open

                                      
                                          end if Util.has_feature?(:bundle_support)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example: EnforcedStyle: empty_lines

                                      # good
                                      
                                      foo do |bar|
                                      
                                        # ...
                                      
                                      end

                                      Example: EnforcedStyle: noemptylines (default)

                                      # good
                                      
                                      foo do |bar|
                                        # ...
                                      end

                                      Use the return of the conditional for variable assignment and comparison.
                                      Open

                                            if instance.nil?
                                              instance = "0"
                                            else
                                              instance = (instance + 1).to_s
                                            end
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Prefer each over for.
                                      Open

                                          for node in @nodes
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop looks for uses of the for keyword, or each method. The preferred alternative is set in the EnforcedStyle configuration parameter. An each call with a block on a single line is always allowed, however.

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                          fail(RecordNotFound, _('Node state not found: %s=%s') % ["id", node_id]) if state.blank?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Extra blank line detected.
                                      Open

                                      
                                              # TODO(should): want some sort of assert "status != :unknown" here
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cops checks for two or more consecutive blank lines.

                                      Example:

                                      # bad - It has two empty lines.
                                      some_method
                                      # one empty line
                                      # two empty lines
                                      some_method
                                      
                                      # good
                                      some_method
                                      # one empty line
                                      some_method

                                      Space between { and | missing.
                                      Open

                                              res[:instances].keys.select{|i| i.to_s.to_i >= res[:clone_max]}.each do |k|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Space between { and | missing.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition.
                                      Open

                                              if m = /^(\w+)\s*role:(\w+)$/.match(l)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for assignments in the conditions of if/while/until.

                                      Example:

                                      # bad
                                      
                                      if some_var = true
                                        do_something
                                      end

                                      Example:

                                      # good
                                      
                                      if some_var == true
                                        do_something
                                      end

                                      Do not use empty case condition, instead use an if expression.
                                      Open

                                            case
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for case statements with an empty condition.

                                      Example:

                                      # bad:
                                      case
                                      when x == 0
                                        puts 'x is 0'
                                      when y == 0
                                        puts 'y is 0'
                                      else
                                        puts 'neither is 0'
                                      end
                                      
                                      # good:
                                      if x == 0
                                        puts 'x is 0'
                                      elsif y == 0
                                        puts 'y is 0'
                                      else
                                        puts 'neither is 0'
                                      end
                                      
                                      # good: (the case condition node is not empty)
                                      case n
                                      when 0
                                        puts 'zero'
                                      when 1
                                        puts 'one'
                                      else
                                        puts 'more'
                                      end

                                      Closing method call brace must be on the same line as the last argument when opening brace is on the same line as the first argument.
                                      Open

                                                      )
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks that the closing brace in a method call is either on the same line as the last method argument, or a new line.

                                      When using the symmetrical (default) style:

                                      If a method call's opening brace is on the same line as the first argument of the call, then the closing brace should be on the same line as the last argument of the call.

                                      If an method call's opening brace is on the line above the first argument of the call, then the closing brace should be on the line below the last argument of the call.

                                      When using the new_line style:

                                      The closing brace of a multi-line method call must be on the line after the last argument of the call.

                                      When using the same_line style:

                                      The closing brace of a multi-line method call must be on the same line as the last argument of the call.

                                      Example:

                                      # symmetrical: bad
                                        # new_line: good
                                        # same_line: bad
                                        foo(a,
                                          b
                                        )
                                      
                                        # symmetrical: bad
                                        # new_line: bad
                                        # same_line: good
                                        foo(
                                          a,
                                          b)
                                      
                                        # symmetrical: good
                                        # new_line: bad
                                        # same_line: good
                                        foo(a,
                                          b)
                                      
                                        # symmetrical: good
                                        # new_line: good
                                        # same_line: bad
                                        foo(
                                          a,
                                          b
                                        )

                                      Space inside } missing.
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: me}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Favor format over String#%.
                                      Open

                                                error _('Error invoking %{cmd}') % {cmd: '/usr/sbin/cibadmin -Ql' }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Favor format over String#%.
                                      Open

                                            details = feature_sets.map { |k, v| "%s = %s" % [v.join(", "), k] }.join("; ")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Use one level of indentation for parameters following the first line of a multi-line method call.
                                      Open

                                                        link: linky
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Here we check if the parameters on a multi-line method call or definition are aligned.

                                      Example: EnforcedStyle: withfirstparameter (default)

                                      # good
                                      
                                      foo :bar,
                                          :baz
                                      
                                      # bad
                                      
                                      foo :bar,
                                        :baz

                                      Example: EnforcedStyle: withfixedindentation

                                      # good
                                      
                                      foo :bar,
                                        :baz
                                      
                                      # bad
                                      
                                      foo :bar,
                                          :baz

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

                                        def status()
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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 one level of indentation for parameters following the first line of a multi-line method call.
                                      Open

                                                        :danger,
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Here we check if the parameters on a multi-line method call or definition are aligned.

                                      Example: EnforcedStyle: withfirstparameter (default)

                                      # good
                                      
                                      foo :bar,
                                          :baz
                                      
                                      # bad
                                      
                                      foo :bar,
                                        :baz

                                      Example: EnforcedStyle: withfixedindentation

                                      # good
                                      
                                      foo :bar,
                                        :baz
                                      
                                      # bad
                                      
                                      foo :bar,
                                          :baz

                                      Unused block argument - v. If it's necessary, use _ or _v as an argument name to indicate that it won't be used.
                                      Open

                                                  instances[alt_i].count{|k,v| (k != :stopped && k != :unknown && k != :is_managed && k != :failed_ops && k != :maintenance)} > 0
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for unused block arguments.

                                      Example:

                                      # bad
                                      
                                      do_something do |used, unused|
                                        puts used
                                      end
                                      
                                      do_something do |bar|
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |bar|
                                        puts :baz
                                      end

                                      Example:

                                      #good
                                      
                                      do_something do |used, _unused|
                                        puts used
                                      end
                                      
                                      do_something do
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |_bar|
                                        puts :baz
                                      end

                                      Favor format over String#%.
                                      Open

                                          fail(RecordNotFound, _('CIB offline: %s=%s') % ["id", node_id]) if @xml.nil?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                          fail(RecordNotFound, _('CIB offline: %s=%s') % ["id", node_id]) if @xml.nil?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Extra blank line detected.
                                      Open

                                      
                                            b.elements.each(@container_type) do |c|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cops checks for two or more consecutive blank lines.

                                      Example:

                                      # bad - It has two empty lines.
                                      some_method
                                      # one empty line
                                      # two empty lines
                                      some_method
                                      
                                      # good
                                      some_method
                                      # one empty line
                                      some_method

                                      Use 2 (not 4) spaces for indentation.
                                      Open

                                            meta[:have_quorum] == "0" && @crm_config[:no_quorum_policy] != "ignore"
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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

                                      Space missing after comma.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example:

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

                                      Space inside { missing.
                                      Open

                                              error _('Unable to parse CIB file "%{path}"') % {path: cib_path }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Space inside { missing.
                                      Open

                                                error _('Error invoking %{cmd}') % {cmd: '/usr/sbin/cibadmin -Ql' }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Unused block argument - v. If it's necessary, use _ or _v as an argument name to indicate that it won't be used.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for unused block arguments.

                                      Example:

                                      # bad
                                      
                                      do_something do |used, unused|
                                        puts used
                                      end
                                      
                                      do_something do |bar|
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |bar|
                                        puts :baz
                                      end

                                      Example:

                                      #good
                                      
                                      do_something do |used, _unused|
                                        puts used
                                      end
                                      
                                      do_something do
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |_bar|
                                        puts :baz
                                      end

                                      Favor format over String#%.
                                      Open

                                          fail(RecordNotFound, _('Node state not found: %s=%s') % ["id", node_id]) if state.blank?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                            raise ArgumentError, _('CIB file "%{path}" not found') % { path: cib_path } unless File.exist?(cib_path)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Indent ) the same as the start of the line where ( is.
                                      Open

                                                      )
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cops checks the indentation of hanging closing parentheses in method calls, method definitions, and grouped expressions. A hanging closing parenthesis means ) preceded by a line break.

                                      Example:

                                      # good: when x is on its own line, indent this way
                                      func(
                                        x,
                                        y
                                      )
                                      
                                      # good: when x follows opening parenthesis, align parentheses
                                      a = b * (x +
                                               y
                                              )
                                      
                                      # bad
                                      def func(
                                        x,
                                        y
                                        )
                                      end

                                      Inconsistent indentation detected.
                                      Open

                                         @xml.elements.each("cib/status/node_state") do |n|
                                          if n.attributes['remote_node']
                                            uname = n.attributes['uname']
                                            node_id = n.attributes['id']
                                            # To determine the state of remote nodes, we need to look at
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cops checks for inconsistent indentation.

                                      Example:

                                      class A
                                        def test
                                          puts 'hello'
                                           puts 'world'
                                        end
                                      end

                                      Space missing inside }.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Unused method argument - use_file. If it's necessary, use _ or _use_file as an argument name to indicate that it won't be used.
                                      Open

                                        def init_offline_cluster(id, user, use_file)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for unused method arguments.

                                      Example:

                                      # bad
                                      
                                      def some_method(used, unused, _unused_but_allowed)
                                        puts used
                                      end

                                      Example:

                                      # good
                                      
                                      def some_method(used, _unused, _unused_but_allowed)
                                        puts used
                                      end

                                      Use && instead of and.
                                      Open

                                            if standby and state == :online
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of and and or, and suggests using && and || instead. It can be configured to check only in conditions, or in all contexts.

                                      Example: EnforcedStyle: always (default)

                                      # bad
                                      foo.save and return
                                      
                                      # bad
                                      if foo and bar
                                      end
                                      
                                      # good
                                      foo.save && return
                                      
                                      # good
                                      if foo && bar
                                      end

                                      Example: EnforcedStyle: conditionals

                                      # bad
                                      if foo and bar
                                      end
                                      
                                      # good
                                      foo.save && return
                                      
                                      # good
                                      foo.save and return
                                      
                                      # good
                                      if foo && bar
                                      end

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

                                                        },
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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
                                                              }

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                              error _('Unable to parse CIB file "%{path}"') % {path: cib_path }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Space missing after comma.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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 == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition.
                                      Open

                                                elsif m = /^  (\w+) connection:(\w+)$/.match(l)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for assignments in the conditions of if/while/until.

                                      Example:

                                      # bad
                                      
                                      if some_var = true
                                        do_something
                                      end

                                      Example:

                                      # good
                                      
                                      if some_var == true
                                        do_something
                                      end

                                      Favor format over String#%.
                                      Open

                                              error _('Unable to parse CIB file "%{path}"') % {path: cib_path }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Extra blank line detected.
                                      Open

                                      
                                            resource[:state] = :unmanaged unless resource[:is_managed]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cops checks for two or more consecutive blank lines.

                                      Example:

                                      # bad - It has two empty lines.
                                      some_method
                                      # one empty line
                                      # two empty lines
                                      some_method
                                      
                                      # good
                                      some_method
                                      # one empty line
                                      some_method

                                      Space missing after comma.
                                      Open

                                                  instances[alt_i].count{|k,v| (k != :stopped && k != :unknown && k != :is_managed && k != :failed_ops && k != :maintenance)} > 0
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example:

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

                                      Space missing to the left of {.
                                      Open

                                              res[:instances].keys.select{|i| i.to_s.to_i >= res[:clone_max]}.each do |k|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have a space before the opening brace depending on configuration.

                                      Example:

                                      # bad
                                      foo.map{ |a|
                                        a.bar.to_s
                                      }
                                      
                                      # good
                                      foo.map { |a|
                                        a.bar.to_s
                                      }

                                      Space inside } missing.
                                      Open

                                                  warning(_("DRBD connection for %{d} to %{n} is %{s}") % { d: curr, s: m[2], n: m[1]}) if warn_connectionstates.include? m[2]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Unused method argument - user. If it's necessary, use _ or _user as an argument name to indicate that it won't be used.
                                      Open

                                        def init_offline_cluster(id, user, use_file)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for unused method arguments.

                                      Example:

                                      # bad
                                      
                                      def some_method(used, unused, _unused_but_allowed)
                                        puts used
                                      end

                                      Example:

                                      # good
                                      
                                      def some_method(used, _unused, _unused_but_allowed)
                                        puts used
                                      end

                                      Use the return of the conditional for variable assignment and comparison.
                                      Open

                                            if can_fence
                                              fence_history = Util.safe_x('/usr/sbin/stonith_admin', '-H', "#{uname}", '2>/dev/null').strip
                                            else
                                              fence_history = ""
                                            end
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Favor format over String#%.
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                          fail(RecordNotFound, _('CIB offline: %s=%s') % ["id", node_id]) if @xml.nil?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                              error _('Unable to execute %{cmd}') % {cmd: '/usr/sbin/crm_mon' }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                error _('Error invoking %{cmd}') % {cmd: '/usr/sbin/cibadmin -Ql' }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Closing hash brace must be on the line after the last hash element when opening brace is on a separate line from the first hash element.
                                      Open

                                                cmd: '/usr/sbin/crm_mon' }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks that the closing brace in a hash literal is either on the same line as the last hash element, or a new line.

                                      When using the symmetrical (default) style:

                                      If a hash's opening brace is on the same line as the first element of the hash, then the closing brace should be on the same line as the last element of the hash.

                                      If a hash's opening brace is on the line above the first element of the hash, then the closing brace should be on the line below the last element of the hash.

                                      When using the new_line style:

                                      The closing brace of a multi-line hash literal must be on the line after the last element of the hash.

                                      When using the same_line style:

                                      The closing brace of a multi-line hash literal must be on the same line as the last element of the hash.

                                      Example: EnforcedStyle: symmetrical (default)

                                      # bad
                                        { a: 1,
                                          b: 2
                                        }
                                        # bad
                                        {
                                          a: 1,
                                          b: 2 }
                                      
                                        # good
                                        { a: 1,
                                          b: 2 }
                                      
                                        # good
                                        {
                                          a: 1,
                                          b: 2
                                        }

                                      Example: EnforcedStyle: new_line

                                      # bad
                                        {
                                          a: 1,
                                          b: 2 }
                                      
                                        # bad
                                        { a: 1,
                                          b: 2 }
                                      
                                        # good
                                        { a: 1,
                                          b: 2
                                        }
                                      
                                        # good
                                        {
                                          a: 1,
                                          b: 2
                                        }

                                      Example: EnforcedStyle: same_line

                                      # bad
                                        { a: 1,
                                          b: 2
                                        }
                                      
                                        # bad
                                        {
                                          a: 1,
                                          b: 2
                                        }
                                      
                                        # good
                                        {
                                          a: 1,
                                          b: 2 }
                                      
                                        # good
                                        { a: 1,
                                          b: 2 }

                                      Space missing after comma.
                                      Open

                                          @nodes.sort!{|a,b| a[:uname].natcmp(b[:uname], true)}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example:

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

                                      Space missing to the left of {.
                                      Open

                                          @nodes.sort!{|a,b| a[:uname].natcmp(b[:uname], true)}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have a space before the opening brace depending on configuration.

                                      Example:

                                      # bad
                                      foo.map{ |a|
                                        a.bar.to_s
                                      }
                                      
                                      # good
                                      foo.map { |a|
                                        a.bar.to_s
                                      }

                                      Space missing inside }.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Space missing inside }.
                                      Open

                                                  instances[alt_i].count{|k,v| (k != :stopped && k != :unknown && k != :is_managed && k != :failed_ops && k != :maintenance)} > 0
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn't have trailing space depending on configuration.

                                      Example: EnforcedStyle: space (default)

                                      # The `space` style enforces that block braces have
                                      # surrounding space.
                                      
                                      # bad
                                      some_array.each {puts e}
                                      
                                      # good
                                      some_array.each { puts e }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that block braces don't
                                      # have surrounding space.
                                      
                                      # bad
                                      some_array.each { puts e }
                                      
                                      # good
                                      some_array.each {puts e}

                                      Example: EnforcedStyleForEmptyBraces: no_space (default)

                                      # The `no_space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces don't have a space in between when empty.
                                      
                                      # bad
                                      some_array.each {   }
                                      some_array.each {  }
                                      some_array.each { }
                                      
                                      # good
                                      some_array.each {}

                                      Example: EnforcedStyleForEmptyBraces: space

                                      # The `space` EnforcedStyleForEmptyBraces style enforces that
                                      # block braces have at least a spece in between when empty.
                                      
                                      # bad
                                      some_array.each {}
                                      
                                      # good
                                      some_array.each { }
                                      some_array.each {  }
                                      some_array.each {   }

                                      Example: SpaceBeforeBlockParameters: true (default)

                                      # The SpaceBeforeBlockParameters style set to `true` enforces that
                                      # there is a space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each {|n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each { |n| n * 2 }

                                      Example: SpaceBeforeBlockParameters: true

                                      # The SpaceBeforeBlockParameters style set to `false` enforces that
                                      # there is no space between `{` and `|`. Overrides `EnforcedStyle`
                                      # if there is a conflict.
                                      
                                      # bad
                                      [1, 2, 3].each { |n| n * 2 }
                                      
                                      # good
                                      [1, 2, 3].each {|n| n * 2 }

                                      Space inside } missing.
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: curr_peer}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      end at 644, 2 is not aligned with @xml.elements.each("cib/status/node_state") do |n| at 622, 3.
                                      Open

                                        end
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks whether the end keywords are aligned properly for do end blocks.

                                      Three modes are supported through the EnforcedStyleAlignWith configuration parameter:

                                      start_of_block : the end shall be aligned with the start of the line where the do appeared.

                                      start_of_line : the end shall be aligned with the start of the line where the expression started.

                                      either (which is the default) : the end is allowed to be in either location. The autofixer will default to start_of_line.

                                      Example: EnforcedStyleAlignWith: either (default)

                                      # bad
                                      
                                      foo.bar
                                         .each do
                                           baz
                                             end
                                      
                                      # good
                                      
                                      variable = lambda do |i|
                                        i
                                      end

                                      Example: EnforcedStyleAlignWith: startofblock

                                      # bad
                                      
                                      foo.bar
                                         .each do
                                           baz
                                             end
                                      
                                      # good
                                      
                                      foo.bar
                                        .each do
                                           baz
                                         end

                                      Example: EnforcedStyleAlignWith: startofline

                                      # bad
                                      
                                      foo.bar
                                         .each do
                                           baz
                                             end
                                      
                                      # good
                                      
                                      foo.bar
                                        .each do
                                           baz
                                      end

                                      Unused block argument - v. If it's necessary, use _ or _v as an argument name to indicate that it won't be used.
                                      Open

                                                res[:instances].delete_if do |k, v|
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for unused block arguments.

                                      Example:

                                      # bad
                                      
                                      do_something do |used, unused|
                                        puts used
                                      end
                                      
                                      do_something do |bar|
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |bar|
                                        puts :baz
                                      end

                                      Example:

                                      #good
                                      
                                      do_something do |used, _unused|
                                        puts used
                                      end
                                      
                                      do_something do
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |_bar|
                                        puts :baz
                                      end

                                      Unused block argument - v. If it's necessary, use _ or _v as an argument name to indicate that it won't be used.
                                      Open

                                            instance = instances.select {|k,v| Util.numeric?(k.to_s)}.map {|k,v| k.to_s.to_i}.max
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for unused block arguments.

                                      Example:

                                      # bad
                                      
                                      do_something do |used, unused|
                                        puts used
                                      end
                                      
                                      do_something do |bar|
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |bar|
                                        puts :baz
                                      end

                                      Example:

                                      #good
                                      
                                      do_something do |used, _unused|
                                        puts used
                                      end
                                      
                                      do_something do
                                        puts :foo
                                      end
                                      
                                      define_method(:foo) do |_bar|
                                        puts :baz
                                      end

                                      Favor format over String#%.
                                      Open

                                              error _('Pacemaker does not appear to be installed (%{cmd} not found)') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Favor format over String#%.
                                      Open

                                              error _('Error invoking %{cmd}: %{msg}') % {cmd: '/usr/sbin/cibadmin -Ql', msg: err }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop enforces the use of a single string formatting utility. Valid options include Kernel#format, Kernel#sprintf and String#%.

                                      The detection of String#% cannot be implemented in a reliable manner for all cases, so only two scenarios are considered - if the first argument is a string literal and if the second argument is an array literal.

                                      Example: EnforcedStyle: format(default)

                                      # bad
                                      puts sprintf('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts format('%10s', 'hoge')

                                      Example: EnforcedStyle: sprintf

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts '%10s' % 'hoge'
                                      
                                      # good
                                      puts sprintf('%10s', 'hoge')

                                      Example: EnforcedStyle: percent

                                      # bad
                                      puts format('%10s', 'hoge')
                                      puts sprintf('%10s', 'hoge')
                                      
                                      # good
                                      puts '%10s' % 'hoge'

                                      Space missing to the left of {.
                                      Open

                                                  instances[alt_i].count{|k,v| (k != :stopped && k != :unknown && k != :is_managed && k != :failed_ops && k != :maintenance)} > 0
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that block braces have or don't have a space before the opening brace depending on configuration.

                                      Example:

                                      # bad
                                      foo.map{ |a|
                                        a.bar.to_s
                                      }
                                      
                                      # good
                                      foo.map { |a|
                                        a.bar.to_s
                                      }

                                      Space inside { missing.
                                      Open

                                              error _('Error invoking %{cmd}: %{msg}') % {cmd: '/usr/sbin/cibadmin -Ql', msg: err }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Space inside } missing.
                                      Open

                                          @booth = {sites: [], arbitrators: [], tickets: [], me: nil}
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

                                      Example: EnforcedStyle: space

                                      # The `space` style enforces that hash literals have
                                      # surrounding space.
                                      
                                      # bad
                                      h = {a: 1, b: 2}
                                      
                                      # good
                                      h = { a: 1, b: 2 }

                                      Example: EnforcedStyle: no_space

                                      # The `no_space` style enforces that hash literals have
                                      # no surrounding space.
                                      
                                      # bad
                                      h = { a: 1, b: 2 }
                                      
                                      # good
                                      h = {a: 1, b: 2}

                                      Example: EnforcedStyle: compact

                                      # The `compact` style normally requires a space inside
                                      # hash braces, with the exception that successive left
                                      # braces or right braces are collapsed together in nested hashes.
                                      
                                      # bad
                                      h = { a: { b: 2 } }
                                      
                                      # good
                                      h = { a: { b: 2 }}

                                      Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition.
                                      Open

                                                if m = /^  disk:(\w+)/.match(l)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for assignments in the conditions of if/while/until.

                                      Example:

                                      # bad
                                      
                                      if some_var = true
                                        do_something
                                      end

                                      Example:

                                      # good
                                      
                                      if some_var == true
                                        do_something
                                      end

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                            details = feature_sets.map { |k, v| "%s = %s" % [v.join(", "), k] }.join("; ")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                              error _('Node "%{node}" is UNCLEAN and needs to be fenced.') % { node: "<strong>#{n[:uname]}</strong>".html_safe }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

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

                                          if res[:attributes].key?("is-managed")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD connection for %{d} to %{n} is %{s}") % { d: curr, s: m[2], n: m[1]}) if warn_connectionstates.include? m[2]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Move Node.instantiate(node, state.first) out of the conditional.
                                      Open

                                            Node.instantiate(node, state.first)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for identical lines at the beginning or end of each branch of a conditional statement.

                                      Example:

                                      # bad
                                      if condition
                                        do_x
                                        do_z
                                      else
                                        do_y
                                        do_z
                                      end
                                      
                                      # good
                                      if condition
                                        do_x
                                      else
                                        do_y
                                      end
                                      do_z
                                      
                                      # bad
                                      if condition
                                        do_z
                                        do_x
                                      else
                                        do_z
                                        do_y
                                      end
                                      
                                      # good
                                      do_z
                                      if condition
                                        do_x
                                      else
                                        do_y
                                      end
                                      
                                      # bad
                                      case foo
                                      when 1
                                        do_x
                                      when 2
                                        do_x
                                      else
                                        do_x
                                      end
                                      
                                      # good
                                      case foo
                                      when 1
                                        do_x
                                        do_y
                                      when 2
                                        # nothing
                                      else
                                        do_x
                                        do_z
                                      end

                                      Favor a normal if-statement over a modifier clause in a multiline statement.
                                      Open

                                              line.split(",").each do |pair|
                                                m = pair.match(/(leader|expires|commit):\s*(.*)/)
                                                @tickets[t][m[1].to_sym] = m[2] if m
                                              end if t && @tickets[t]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Convert if nested inside else to elsif.
                                      Open

                                              if res.key?(:instances)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      If the else branch of a conditional consists solely of an if node, it can be combined with the else to become an elsif. This helps to keep the nesting level from getting too deep.

                                      Example:

                                      # bad
                                      if condition_a
                                        action_a
                                      else
                                        if condition_b
                                          action_b
                                        else
                                          action_c
                                        end
                                      end
                                      
                                      # good
                                      if condition_a
                                        action_a
                                      elsif condition_b
                                        action_b
                                      else
                                        action_c
                                      end

                                      Favor a normal unless-statement over a modifier clause in a multiline statement.
                                      Open

                                                res[:instances][:default] = {
                                                  failed_ops: [],
                                                  is_managed: res[:is_managed] && !@crm_config[:maintenance_mode],
                                                  maintenance: res[:maintenance] || @crm_config[:maintenance_mode] || false
                                                } unless res[:instances].key?(:default)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Don't use parentheses around a variable.
                                      Open

                                                  if (fail_start)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for redundant parentheses.

                                      Example:

                                      # bad
                                      (x) if ((y.z).nil?)
                                      
                                      # good
                                      x if y.z.nil?

                                      Always use raise to signal exceptions.
                                      Open

                                          fail(RecordNotFound, _('CIB offline: %s=%s') % ["id", node_id]) if @xml.nil?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of fail and raise.

                                      Example: EnforcedStyle: only_raise (default)

                                      # The `only_raise` style enforces the sole use of `raise`.
                                      # bad
                                      begin
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.fail
                                      
                                      # good
                                      begin
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.raise

                                      Example: EnforcedStyle: only_fail

                                      # The `only_fail` style enforces the sole use of `fail`.
                                      # bad
                                      begin
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.raise
                                      
                                      # good
                                      begin
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.fail

                                      Example: EnforcedStyle: semantic

                                      # The `semantic` style enforces the use of `fail` to signal an
                                      # exception, then will use `raise` to trigger an offense after
                                      # it has been rescued.
                                      # bad
                                      begin
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        # Error thrown
                                      rescue Exception
                                        fail
                                      end
                                      
                                      Kernel.fail
                                      Kernel.raise
                                      
                                      # good
                                      begin
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        fail
                                      rescue Exception
                                        raise 'Preferably with descriptive message'
                                      end
                                      
                                      explicit_receiver.fail
                                      explicit_receiver.raise

                                      Prefer to_s over string interpolation.
                                      Open

                                              fence_history = Util.safe_x('/usr/sbin/stonith_admin', '-H', "#{uname}", '2>/dev/null').strip
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example:

                                      # bad
                                      "#{@var}"
                                      
                                      # good
                                      @var.to_s
                                      
                                      # good if @var is already a String
                                      @var

                                      Favor a normal unless-statement over a modifier clause in a multiline statement.
                                      Open

                                          warning(
                                            _("STONITH is disabled. For normal cluster operation, STONITH is required."),
                                            link: edit_cib_crm_config_path(cib_id: @id)
                                          ) unless @crm_config[:stonith_enabled] || !stonithwarning
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: me}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: curr_peer}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

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

                                              if m && ['true', 'yes', '1', 'on'].include?(m.attributes['value'])
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

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

                                            if ticket[:state] == :revoked && (ticket[:leader] && ticket[:leader].downcase != "none")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

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

                                            if n[:state] == :unclean
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

                                      Avoid comma after the last item of a hash.
                                      Open

                                            no_quorum_policy: 'stop',
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for trailing comma in array and hash literals.

                                      Example: EnforcedStyleForMultiline: consistent_comma

                                      # bad
                                      a = [1, 2,]
                                      
                                      # good
                                      a = [
                                        1, 2,
                                        3,
                                      ]
                                      
                                      # good
                                      a = [
                                        1,
                                        2,
                                      ]

                                      Example: EnforcedStyleForMultiline: comma

                                      # bad
                                      a = [1, 2,]
                                      
                                      # good
                                      a = [
                                        1,
                                        2,
                                      ]

                                      Example: EnforcedStyleForMultiline: no_comma (default)

                                      # bad
                                      a = [1, 2,]
                                      
                                      # good
                                      a = [
                                        1,
                                        2
                                      ]

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: curr_peer}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Favor a normal if-statement over a modifier clause in a multiline statement.
                                      Open

                                          @xml.elements.each('cib/configuration/resources/template') do |t|
                                            @templates << {
                                              id: t.attributes['id'],
                                              class: t.attributes['class'],
                                              provider: t.attributes['provider'],
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Favor a normal unless-statement over a modifier clause in a multiline statement.
                                      Open

                                          instances[instance] = {
                                            is_managed: resource[:is_managed] && !@crm_config[:maintenance_mode],
                                            maintenance: resource[:maintenance] || @crm_config[:maintenance_mode] || false
                                          } unless instances[instance]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                            warning _('Partial upgrade detected! Nodes report different CRM versions: %s') % details
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

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

                                              if selems && ['true', 'yes', '1', 'on'].include?(selems.attributes['value'])
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: me}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Don't use parentheses around the condition of an if.
                                      Open

                                                  if (fail_start)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for the presence of superfluous parentheses around the condition of if/unless/while/until.

                                      Example:

                                      # bad
                                      x += 1 while (x < 10)
                                      foo unless (bar || baz)
                                      
                                      if (x > 10)
                                      elsif (x < 3)
                                      end
                                      
                                      # good
                                      x += 1 while x < 10
                                      foo unless bar || baz
                                      
                                      if x > 10
                                      elsif x < 3
                                      end

                                      Favor modifier while usage when having a single-line body.
                                      Open

                                                while res[:instances].key?(instance.to_s.to_sym)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example:

                                      # bad
                                      while x < 10
                                        x += 1
                                      end
                                      
                                      # good
                                      x += 1 while x < 10

                                      Example:

                                      # bad
                                      until x > 10
                                        x += 1
                                      end
                                      
                                      # good
                                      x += 1 until x > 10

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                              error _('Error invoking %{cmd}: %{msg}') % {cmd: '/usr/sbin/cibadmin -Ql', msg: err }
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                                    fail_end = Time.at(fail_end).strftime("%Y-%m-%d %H:%M")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: me}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Move Node.instantiate(node, state.first) out of the conditional.
                                      Open

                                            Node.instantiate(node, state.first)
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for identical lines at the beginning or end of each branch of a conditional statement.

                                      Example:

                                      # bad
                                      if condition
                                        do_x
                                        do_z
                                      else
                                        do_y
                                        do_z
                                      end
                                      
                                      # good
                                      if condition
                                        do_x
                                      else
                                        do_y
                                      end
                                      do_z
                                      
                                      # bad
                                      if condition
                                        do_z
                                        do_x
                                      else
                                        do_z
                                        do_y
                                      end
                                      
                                      # good
                                      do_z
                                      if condition
                                        do_x
                                      else
                                        do_y
                                      end
                                      
                                      # bad
                                      case foo
                                      when 1
                                        do_x
                                      when 2
                                        do_x
                                      else
                                        do_x
                                      end
                                      
                                      # good
                                      case foo
                                      when 1
                                        do_x
                                        do_y
                                      when 2
                                        # nothing
                                      else
                                        do_x
                                        do_z
                                      end

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

                                            if standby and state == :online
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

                                      Favor a normal if-statement over a modifier clause in a multiline statement.
                                      Open

                                          @xml.elements.each('cib/configuration/resources/bundle') do |b|
                                      
                                            # Figure out which type of container
                                            b.elements.each('docker' || 'rkt') do |c|
                                              # @container_type will be either "docker" or "rkt"
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                                    fail_start = Time.at(fail_start).strftime("%Y-%m-%d %H:%M")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD connection for %{d} to %{n} is %{s}") % { d: curr, s: m[2], n: m[1]}) if warn_connectionstates.include? m[2]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Favor a normal unless-statement over a modifier clause in a multiline statement.
                                      Open

                                              @tickets[t] = {
                                                id: t,
                                                state: :revoked,
                                                granted: false,
                                                standby: false,
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Always use raise to signal exceptions.
                                      Open

                                          fail(RecordNotFound, _('Node state not found: %s=%s') % ["id", node_id]) if state.blank?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      This cop checks for uses of fail and raise.

                                      Example: EnforcedStyle: only_raise (default)

                                      # The `only_raise` style enforces the sole use of `raise`.
                                      # bad
                                      begin
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.fail
                                      
                                      # good
                                      begin
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.raise

                                      Example: EnforcedStyle: only_fail

                                      # The `only_fail` style enforces the sole use of `fail`.
                                      # bad
                                      begin
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.raise
                                      
                                      # good
                                      begin
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      Kernel.fail

                                      Example: EnforcedStyle: semantic

                                      # The `semantic` style enforces the use of `fail` to signal an
                                      # exception, then will use `raise` to trigger an offense after
                                      # it has been rescued.
                                      # bad
                                      begin
                                        raise
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        # Error thrown
                                      rescue Exception
                                        fail
                                      end
                                      
                                      Kernel.fail
                                      Kernel.raise
                                      
                                      # good
                                      begin
                                        fail
                                      rescue Exception
                                        # handle it
                                      end
                                      
                                      def watch_out
                                        fail
                                      rescue Exception
                                        raise 'Preferably with descriptive message'
                                      end
                                      
                                      explicit_receiver.fail
                                      explicit_receiver.raise

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                            details = feature_sets.map { |k, v| "%s = %s" % [v.join(", "), k] }.join("; ")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

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

                                                  if prio[rstate] > prio[sum_state]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

                                      Favor a normal unless-statement over a modifier clause in a multiline statement.
                                      Open

                                            @xml.root.attributes.each do |n, v|
                                              struct[n.underscore.to_sym] = Util.unstring(v, '')
                                            end unless @xml.nil?
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Favor a normal if-statement over a modifier clause in a multiline statement.
                                      Open

                                          File.readlines("/etc/booth/booth.conf").each do |line|
                                            m = line.match(/^\s*(site|arbitrator|ticket)\s*=(.+)/)
                                            next unless m
                                            v = Util.strip_quotes(m[2].strip)
                                            next unless v
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Checks for uses of if/unless modifiers with multiple-lines bodies.

                                      Example:

                                      # bad
                                      {
                                        result: 'this should not happen'
                                      } unless cond
                                      
                                      # good
                                      { result: 'ok' } if cond

                                      Favor unless over if for negative conditions.
                                      Open

                                          if !@booth[:sites].empty?
                                            @booth[:sites].sort!
                                            booth_resource_id = nil
                                            @xml.elements.each("cib/configuration//primitive[@type='IPaddr2']/instance_attributes/nvpair[@name='ip']") do |elem|
                                              ip = Cibtools.get_xml_attr(elem, "value")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      - both
                                      - prefix
                                      - postfix

                                      Example: EnforcedStyle: both (default)

                                      # enforces `unless` for `prefix` and `postfix` conditionals
                                      
                                      # bad
                                      
                                      if !foo
                                        bar
                                      end
                                      
                                      # good
                                      
                                      unless foo
                                        bar
                                      end
                                      
                                      # bad
                                      
                                      bar if !foo
                                      
                                      # good
                                      
                                      bar unless foo

                                      Example: EnforcedStyle: prefix

                                      # enforces `unless` for just `prefix` conditionals
                                      
                                      # bad
                                      
                                      if !foo
                                        bar
                                      end
                                      
                                      # good
                                      
                                      unless foo
                                        bar
                                      end
                                      
                                      # good
                                      
                                      bar if !foo

                                      Example: EnforcedStyle: postfix

                                      # enforces `unless` for just `postfix` conditionals
                                      
                                      # bad
                                      
                                      bar if !foo
                                      
                                      # good
                                      
                                      bar unless foo
                                      
                                      # good
                                      
                                      if !foo
                                        bar
                                      end

                                      Prefer to_s over string interpolation.
                                      Open

                                                ip = Util.safe_x('crm_resource', '-r', "#{booth_resource_id}", '-g', 'ip').strip
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example:

                                      # bad
                                      "#{@var}"
                                      
                                      # good
                                      @var.to_s
                                      
                                      # good if @var is already a String
                                      @var

                                      Prefer annotated tokens (like %<foo>s</foo>) over unannotated tokens (like %s).
                                      Open

                                                  real_start = Time.at(times.min).strftime("%Y-%m-%d %H:%M")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD connection for %{d} to %{n} is %{s}") % { d: curr, s: m[2], n: m[1]}) if warn_connectionstates.include? m[2]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

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

                                          if has_drbd
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

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

                                      Example:

                                      # bad
                                      def test
                                        if something
                                          work
                                        end
                                      end
                                      
                                      # good
                                      def test
                                        return unless something
                                        work
                                      end
                                      
                                      # also good
                                      def test
                                        work if something
                                      end
                                      
                                      # bad
                                      if something
                                        raise 'exception'
                                      else
                                        ok
                                      end
                                      
                                      # good
                                      raise 'exception' if something
                                      ok

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

                                            if bundle[:attributes].key?("is-managed")
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  error(_('%{fail_start}: Operation %{op} failed for resource %{resource} on node %{node}: call-id=%{call_id}, rc-code=%{rc_mapping} (%{rc_code}), exit-reason=%{exit_reason}') % {
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

                                      Prefer annotated tokens (like %<foo>s</foo>) over template tokens (like %{foo}).
                                      Open

                                                  warning(_("DRBD disk %{d} is %{s} on %{n}") % { d: curr, s: m[1], n: curr_peer}) if warn_diskstates.include? m[1]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.rb by rubocop

                                      Use a consistent style for named format string tokens.

                                      Note: unannotated style cop only works for strings which are passed as arguments to those methods: sprintf, format, %. The reason is that unannotated format is very similar to encoded URLs or Date/Time formatting strings.

                                      Example: EnforcedStyle: annotated (default)

                                      # bad
                                      format('%{greeting}', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%<greeting>s', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: template

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%s', 'Hello')
                                      
                                      # good
                                      format('%{greeting}', greeting: 'Hello')</greeting>

                                      Example: EnforcedStyle: unannotated

                                      # bad
                                      format('%<greeting>s', greeting: 'Hello')
                                      format('%{greeting}', 'Hello')
                                      
                                      # good
                                      format('%s', 'Hello')</greeting>

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

                                          if @crm_config.key?(:is_managed_default) && !@crm_config[:is_managed_default]
                                      Severity: Minor
                                      Found in hawk/app/models/cib.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?

                                      There are no issues that match your filters.

                                      Category
                                      Status