Class: Semverve::VersionMetadata

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

Overview

Checks generated gem metadata against the configured version file.

Defined Under Namespace

Classes: Finding, FixResult

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::VersionMetadata

Initializes metadata version checking.

Parameters:



113
114
115
116
# File 'lib/semverve/version_metadata.rb', line 113

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

Instance Method Details

#findingsArray<Semverve::VersionMetadata::Finding>

Metadata mismatches.



122
123
124
# File 'lib/semverve/version_metadata.rb', line 122

def findings
  [gemspec_finding, lockfile_finding].compact
end

#fixSemverve::VersionMetadata::FixResult

Fixes safe metadata mismatches.



130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/semverve/version_metadata.rb', line 130

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

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