class ZeroDowntimeMigrations::Validation

Attributes

args[R]
migration[R]

Public Class Methods

new(migration, *args) click to toggle source
   # File lib/zero_downtime_migrations/validation.rb
16 def initialize(migration, *args)
17   @migration = migration
18   @args = args
19 end
validate!(type, *args) click to toggle source
   # File lib/zero_downtime_migrations/validation.rb
 3 def self.validate!(type, *args)
 4   return unless Migration.migrating? && Migration.unsafe?
 5 
 6   begin
 7     validator = type.to_s.classify
 8     const_get(validator).new(Migration.current, *args).validate!
 9   rescue NameError
10     raise UndefinedValidationError.new(validator)
11   end
12 end

Public Instance Methods

error!(message) click to toggle source
   # File lib/zero_downtime_migrations/validation.rb
21 def error!(message)
22   error = UnsafeMigrationError
23   debug = "#{error}: #{migration_name} is unsafe!"
24   message = [message, debug, nil].join("\n")
25   raise error.new(message)
26 end
migration_name() click to toggle source
   # File lib/zero_downtime_migrations/validation.rb
28 def migration_name
29   migration.class.name
30 end
options() click to toggle source
   # File lib/zero_downtime_migrations/validation.rb
32 def options
33   args.last.is_a?(Hash) ? args.last : {}
34 end
validate!() click to toggle source
   # File lib/zero_downtime_migrations/validation.rb
36 def validate!
37   raise NotImplementedError
38 end