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