class Vara::ContentMigrationsProcessor
Attributes
product_dir[R]
versioner[R]
Public Class Methods
new(product_dir, versioner)
click to toggle source
@param product_dir
[String] path to product directory root @param versioner [Vara::PrereleaseVersioner,Vara::StaticVersioner]
# File lib/vara/content_migrations_processor.rb, line 10 def initialize(product_dir, versioner) @product_dir = product_dir @versioner = versioner end
Public Instance Methods
process()
click to toggle source
Composes content_migrations_parts/base.yml and content_migrations_parts/migrations/*.yml into content_migrations/migrations.yml, expanding placeholders as necessary. @return [String] path to the generated content migration file
# File lib/vara/content_migrations_processor.rb, line 18 def process return unless File.exist?(parts_dir) content_migrations = load_content_migrations processed = versioner.update_content_migrations(content_migrations) save_content_migrations(processed) end
update_product_version_migrations()
click to toggle source
# File lib/vara/content_migrations_processor.rb, line 25 def update_product_version_migrations return unless File.exists? migrations_file_path migrations = YAML.load_file(migrations_file_path) versioner.update_content_migrations(migrations) save_content_migrations(migrations) end
Private Instance Methods
load_content_migrations()
click to toggle source
# File lib/vara/content_migrations_processor.rb, line 36 def load_content_migrations base_path = File.join(parts_dir, 'base.yml') content_migrations = YAML.load_file(base_path) || {} log.info("Composing content migrations: loaded #{base_path}") Dir.glob(File.join(parts_dir, 'migrations', '*.yml')).each do |migration_path| migration = YAML.load_file(migration_path) log.info("Composing content migrations: loaded #{migration_path}") content_migrations['migrations'] ||= [] content_migrations['migrations'] << migration end content_migrations end
migrations_file_path()
click to toggle source
# File lib/vara/content_migrations_processor.rb, line 64 def migrations_file_path File.join(product_dir, 'content_migrations', 'migrations.yml') end
parts_dir()
click to toggle source
# File lib/vara/content_migrations_processor.rb, line 50 def parts_dir File.join(product_dir, 'content_migrations_parts') end
save_content_migrations(processed_hash)
click to toggle source
# File lib/vara/content_migrations_processor.rb, line 54 def save_content_migrations(processed_hash) out_path = migrations_file_path File.open(out_path, 'w') do |out| YAML.dump(processed_hash, out) end out_path end