vidibus/vidibus-version_scheduler

View on GitHub
lib/vidibus/version_scheduler/migration_job.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Vidibus
  module VersionScheduler
    class MigrationJob < Struct.new(:version_uuid)
      def initialize(uuid)
        self.version_uuid = uuid or raise(ArgumentError)
      end

      def perform
        return unless version = Vidibus::Versioning::Version.where(:uuid => version_uuid).first
        return unless versioned = version.versioned
        begin
          versioned.migrate!(version.number)
          ScheduledVersion.where(:version_uuid => version.uuid).destroy_all
        rescue Vidibus::Versioning::MigrationError
        end
      end
    end
  end
end