ManageIQ/wim_parser

View on GitHub

Showing 3 of 3 total issues

Method xml_data has 29 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  def xml_data
    header_data = header

    xml = File.open(filename, "rb") do |f|
      f.seek(header_data["xml_data_offset"])
Severity: Minor
Found in lib/wim_parser.rb - About 1 hr to fix

    Wrap expressions with varying precedence with parentheses to avoid ambiguity.
    Open

        nt_time = nt_time / 10_000_000 - 11_644_495_200
    Severity: Minor
    Found in lib/wim_parser.rb by rubocop

    Looks for expressions containing multiple binary operators where precedence is ambiguous due to lack of parentheses. For example, in 1 + 2 * 3, the multiplication will happen before the addition, but lexically it appears that the addition will happen first.

    The cop does not consider unary operators (ie. !a or -b) or comparison operators (ie. a =~ b) because those are not ambiguous.

    NOTE: Ranges are handled by Lint/AmbiguousRange.

    Example:

    # bad
    a + b * c
    a || b && c
    a ** b + c
    
    # good (different precedence)
    a + (b * c)
    a || (b && c)
    (a ** b) + c
    
    # good (same precedence)
    a + b + c
    a * b / c % d

    metadata['rubygems_mfa_required'] must be set to 'true'.
    Open

    Gem::Specification.new do |spec|
      spec.name          = "wim_parser"
      spec.version       = WimParser::VERSION
      spec.authors       = ["ManageIQ Authors"]
    
    
    Severity: Minor
    Found in wim_parser.gemspec by rubocop

    Requires a gemspec to have rubygems_mfa_required metadata set.

    This setting tells RubyGems that MFA (Multi-Factor Authentication) is required for accounts to be able perform privileged operations, such as (see RubyGems' documentation for the full list of privileged operations):

    • gem push
    • gem yank
    • gem owner --add/remove
    • adding or removing owners using gem ownership page

    This helps make your gem more secure, as users can be more confident that gem updates were pushed by maintainers.

    Example:

    # bad
    Gem::Specification.new do |spec|
      # no `rubygems_mfa_required` metadata specified
    end
    
    # good
    Gem::Specification.new do |spec|
      spec.metadata = {
        'rubygems_mfa_required' => 'true'
      }
    end
    
    # good
    Gem::Specification.new do |spec|
      spec.metadata['rubygems_mfa_required'] = 'true'
    end
    
    # bad
    Gem::Specification.new do |spec|
      spec.metadata = {
        'rubygems_mfa_required' => 'false'
      }
    end
    
    # good
    Gem::Specification.new do |spec|
      spec.metadata = {
        'rubygems_mfa_required' => 'true'
      }
    end
    
    # bad
    Gem::Specification.new do |spec|
      spec.metadata['rubygems_mfa_required'] = 'false'
    end
    
    # good
    Gem::Specification.new do |spec|
      spec.metadata['rubygems_mfa_required'] = 'true'
    end
    Severity
    Category
    Status
    Source
    Language