class ViewModel::UpMigrator

Private Instance Methods

migrate_viewmodel!(view_name, source_version, view_hash, references) click to toggle source
# File lib/view_model/migrator.rb, line 78
def migrate_viewmodel!(view_name, source_version, view_hash, references)
  path = @paths[view_name]
  return false unless path

  # We assume that an unspecified source version is the same as the required
  # version.
  required_version, current_version = @versions[view_name]

  unless source_version.nil? || source_version == required_version
    raise ViewModel::Migration::UnspecifiedVersionError.new(view_name, source_version)
  end

  path.each do |migration|
    migration.up(view_hash, references)
  end

  view_hash[ViewModel::VERSION_ATTRIBUTE] = current_version

  true
end