module DBNazi
Constants
- ArgumentError
- IndexUniquenessRequired
- NullabilityRequired
- VERSION
- VarcharLimitRequired
Attributes
enabled[RW]
from_version[RW]
require_index_uniqueness[RW]
require_nullability[RW]
require_varchar_limits[RW]
Public Class Methods
check_column(type, options)
click to toggle source
# File lib/db_nazi.rb, line 61 def check_column(type, options) if DBNazi.enabled?(:require_nullability) && type != :primary_key options.key?(:null) or raise NullabilityRequired, "[db_nazi] :null parameter required" end if DBNazi.enabled?(:require_varchar_limits) # AR calls #to_sym on type, so do the same here. type.to_sym == :string && !options.key?(:limit) and raise VarcharLimitRequired, "[db_nazi] string column requires :limit parameter" end end
check_index(options)
click to toggle source
# File lib/db_nazi.rb, line 73 def check_index(options) if DBNazi.enabled?(:require_index_uniqueness) options.key?(:unique) or raise IndexUniquenessRequired, "[db_nazi] :unique parameter required" end end
disable() { || ... }
click to toggle source
# File lib/db_nazi.rb, line 36 def disable original_enabled = @enabled @enabled = false begin yield ensure @enabled = original_enabled end end
enable() { || ... }
click to toggle source
# File lib/db_nazi.rb, line 26 def enable original_enabled = @enabled @enabled = true begin yield ensure @enabled = original_enabled end end
enabled?(setting)
click to toggle source
# File lib/db_nazi.rb, line 22 def enabled?(setting) @enabled && send(setting) end
enabled_for_migration?(migration, version)
click to toggle source
# File lib/db_nazi.rb, line 46 def enabled_for_migration?(migration, version) return false if !@enabled return false if migration.nazi_disabled? return false if DBNazi.from_version && DBNazi.from_version > version true end
reset()
click to toggle source
# File lib/db_nazi.rb, line 53 def reset self.enabled = true self.from_version = nil self.require_nullability = true self.require_varchar_limits = true self.require_index_uniqueness = true end