class Vara::PrereleaseVersioner
Constants
- MIGRATIONS_KEY
- MIGRATIONS_RULES_KEY
- MIGRATIONS_RULES_TO_KEY
- PRERELEASE_VERSION_PLACEHOLDER
- PRODUCT_VERSION_KEY
- TO_VERSION_KEY
Attributes
cycle[R]
product_directory_path[R]
Public Class Methods
new(product_directory_path, cycle)
click to toggle source
@param product_directory_path
[String] @param cycle [String] cycle (e.g. alpha, beta, etc.) to use in expanded prerelease version value
# File lib/vara/prerelease_versioner.rb, line 14 def initialize(product_directory_path, cycle) @product_directory_path = product_directory_path @cycle = cycle end
Public Instance Methods
override_prerelease_version!(new_prerelease_version)
click to toggle source
@param new_prerelease_version [String] explicit value to override the prerelease version. Use with caution. @return [void]
# File lib/vara/prerelease_versioner.rb, line 21 def override_prerelease_version!(new_prerelease_version) @prerelease_version = new_prerelease_version end
update_content_migrations(migrations_hash)
click to toggle source
@param migrations_hash [Hash] Hash contents of full content migrations @return [Hash] content migrations with product version value updated if necessary
# File lib/vara/prerelease_versioner.rb, line 35 def update_content_migrations(migrations_hash) migrations_hash[TO_VERSION_KEY].gsub!(PRERELEASE_VERSION_PLACEHOLDER, prerelease_version) if migrations_hash.key?(TO_VERSION_KEY) migrations_hash.fetch(MIGRATIONS_KEY, []).each do |migration| migration.fetch(MIGRATIONS_RULES_KEY, []).each do |rule| next unless updates_product_version?(rule) rule[MIGRATIONS_RULES_TO_KEY].gsub!(PRERELEASE_VERSION_PLACEHOLDER, prerelease_version) end end migrations_hash end
update_metadata(metadata_hash)
click to toggle source
@param metadata_hash [Hash] Hash contents of full product metadata @return [Hash] product metadata with product version value updated if necessary
# File lib/vara/prerelease_versioner.rb, line 27 def update_metadata(metadata_hash) return metadata_hash unless metadata_hash.fetch(PRODUCT_VERSION_KEY).include?(PRERELEASE_VERSION_PLACEHOLDER) metadata_hash[PRODUCT_VERSION_KEY].gsub!(PRERELEASE_VERSION_PLACEHOLDER, prerelease_version) metadata_hash end
Private Instance Methods
commit_number()
click to toggle source
# File lib/vara/prerelease_versioner.rb, line 58 def commit_number git_inspector.commit_count end
git_inspector()
click to toggle source
# File lib/vara/prerelease_versioner.rb, line 66 def git_inspector @git_inspector ||= GitInspector.new(product_directory_path) end
prerelease_version()
click to toggle source
# File lib/vara/prerelease_versioner.rb, line 54 def prerelease_version @prerelease_version ||= ".#{cycle}.#{commit_number}.#{short_sha}" end
short_sha()
click to toggle source
# File lib/vara/prerelease_versioner.rb, line 62 def short_sha git_inspector.short_sha end
updates_product_version?(rule_hash)
click to toggle source
# File lib/vara/prerelease_versioner.rb, line 50 def updates_product_version?(rule_hash) rule_hash['type'] == 'update' && rule_hash['selector'] == 'product_version' end