Class: Semverve::VersionCodeReferences
- Inherits:
-
Object
- Object
- Semverve::VersionCodeReferences
- Defined in:
- lib/semverve/version_code_references.rb
Overview
Finds and updates safe version literals in configured code files.
Constant Summary collapse
- IGNORE_MARKER =
Marker that suppresses version-reference findings.
"semverve:ignore-version-reference"- RUBY_ASSIGNMENT_PATTERN =
Ruby assignments that are safe enough to rewrite automatically.
/^\s*(?:(?:[A-Z]\w*::)*(?:[A-Z]\w*VERSION[A-Z0-9_]*|VERSION)|(?:[a-z_]\w*|self)\.version)\s*=\s*(?<quote>["'])(?<version>\d+\.\d+\.\d+)\k<quote>/
Instance Method Summary collapse
-
#findings ⇒ Array<Semverve::Finding>
Code version literal findings in configured files.
-
#fix ⇒ Semverve::FixResult
Replaces found code version literals with the current version.
-
#initialize(configuration, current_version, include_ignored: false, target_version: nil) ⇒ Semverve::VersionCodeReferences
constructor
Initializes code version literal scanning.
Constructor Details
#initialize(configuration, current_version, include_ignored: false, target_version: nil) ⇒ Semverve::VersionCodeReferences
Initializes code version literal scanning.
33 34 35 36 37 38 |
# File 'lib/semverve/version_code_references.rb', line 33 def initialize(configuration, current_version, include_ignored: false, target_version: nil) @configuration = configuration @current_version = current_version @include_ignored = include_ignored @target_version = target_version end |
Instance Method Details
#findings ⇒ Array<Semverve::Finding>
Code version literal findings in configured files.
44 45 46 |
# File 'lib/semverve/version_code_references.rb', line 44 def findings files.flat_map { |path| findings_for_file(path) } end |
#fix ⇒ Semverve::FixResult
Replaces found code version literals with the current version.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/semverve/version_code_references.rb', line 52 def fix changed_files = [] replacement_count = 0 files.each do |path| content = File.read(path) fixed, count = fixed_content(content) next if count.zero? File.write(path, fixed) changed_files << relative_path(path) replacement_count += count end Semverve::FixResult.new(changed_files: changed_files, replacement_count: replacement_count) end |