class ForeignKeyValidation::Collector
Attributes
options[RW]
Public Class Methods
new(opt={})
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 6 def initialize(opt={}) self.options = opt end
Public Instance Methods
check!()
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 10 def check! raise Errors::NoReleationFoundError.new(klass.name) if reflection_names.empty? raise Errors::NoForeignKeyFoundError.new(validate_against, klass.table_name) unless reflection_names.include?(validate_against) raise Errors::UnknownRelationError.new(validate_with) unless validate_with.all? {|k| reflection_names.include?(k)} true end
klass()
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 17 def klass @klass ||= options[:klass] end
reflection_names()
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 33 def reflection_names @reflection_names ||= reflections.map {|r| r.name.to_s } end
reflections()
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 29 def reflections @reflections ||= klass.reflect_on_all_associations(:belongs_to) end
validate_against()
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 21 def validate_against @validate_against ||= (options[:on] || ForeignKeyValidation.configuration.validate_against).to_s end
validate_against_key()
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 37 def validate_against_key @validate_against_key ||= reflections.select {|r| r.name.to_s == validate_against}.first.try(:foreign_key) end
validate_with()
click to toggle source
# File lib/foreign_key_validation/collector.rb, line 25 def validate_with @validate_with ||= ((Array(options[:with]).map(&:to_s) if options[:with]) || reflection_names).reject {|n| n == validate_against} end