Class: Semverve::PackageMetadata

Inherits:
Object
  • Object
show all
Defined in:
lib/semverve/package_metadata.rb

Overview

Checks generated package metadata against the configured version file.

Constant Summary collapse

GEMSPEC_LITERAL_PATTERN =

Literal gemspec version assignments that can be safely rewritten.

Returns:

  • (Regexp)
/^(\s*\w+\.version\s*=\s*)(["'])(\d+\.\d+\.\d+)(\2)/

Instance Method Summary collapse

Constructor Details

#initialize(configuration, current_version) ⇒ Semverve::PackageMetadata

Initializes package metadata version checking.

Parameters:



26
27
28
29
# File 'lib/semverve/package_metadata.rb', line 26

def initialize(configuration, current_version)
  @configuration = configuration
  @current_version = current_version
end

Instance Method Details

#findingsArray<Semverve::Finding>

Package metadata mismatches.

Returns:



35
36
37
# File 'lib/semverve/package_metadata.rb', line 35

def findings
  [gemspec_finding, lockfile_finding].compact
end

#fixSemverve::FixResult

Fixes safe package metadata mismatches.

Returns:



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/semverve/package_metadata.rb', line 43

def fix
  changed_files = []
  replacement_count = fix_gemspec_literal

  changed_files << relative_path(gemspec_file) if replacement_count.positive?

  bundle_lock_ran = lockfile_finding ? run_bundle_lock : false

  Semverve::FixResult.new(
    changed_files: changed_files,
    replacement_count: replacement_count,
    bundle_lock_ran: bundle_lock_ran
  )
end