Class: Vara::PrereleaseVersioner

Inherits:
Object
  • Object
show all
Defined in:
lib/vara/prerelease_versioner.rb

Constant Summary collapse

PRERELEASE_VERSION_PLACEHOLDER =
'$PRERELEASE_VERSION$'.freeze
PRODUCT_VERSION_KEY =
'product_version'.freeze
TO_VERSION_KEY =
'to_version'.freeze
MIGRATIONS_KEY =
'migrations'.freeze
MIGRATIONS_RULES_KEY =
'rules'.freeze
MIGRATIONS_RULES_TO_KEY =
'to'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(product_directory_path, cycle) ⇒ PrereleaseVersioner

Returns a new instance of PrereleaseVersioner.

Parameters:

  • product_directory_path (String)
  • cycle (String)

    cycle (e.g. alpha, beta, etc.) to use in expanded prerelease version value



14
15
16
17
# File 'lib/vara/prerelease_versioner.rb', line 14

def initialize(product_directory_path, cycle)
  @product_directory_path = product_directory_path
  @cycle = cycle
end

Instance Method Details

#override_prerelease_version!(new_prerelease_version) ⇒ void

This method returns an undefined value.

Parameters:

  • new_prerelease_version (String)

    explicit value to override the prerelease version. Use with caution.



21
22
23
# 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) ⇒ Hash

Returns content migrations with product version value updated if necessary.

Parameters:

  • migrations_hash (Hash)

    Hash contents of full content migrations

Returns:

  • (Hash)

    content migrations with product version value updated if necessary



35
36
37
38
39
40
41
42
43
44
# 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) ⇒ Hash

Returns product metadata with product version value updated if necessary.

Parameters:

  • metadata_hash (Hash)

    Hash contents of full product metadata

Returns:

  • (Hash)

    product metadata with product version value updated if necessary



27
28
29
30
31
# File 'lib/vara/prerelease_versioner.rb', line 27

def ()
  return  unless .fetch(PRODUCT_VERSION_KEY).include?(PRERELEASE_VERSION_PLACEHOLDER)
  [PRODUCT_VERSION_KEY].gsub!(PRERELEASE_VERSION_PLACEHOLDER, prerelease_version)
  
end