Class: Saviour::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/saviour/validator.rb

Defined Under Namespace

Classes: AttachmentValidator

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ Validator

Returns a new instance of Validator.

Raises:



101
102
103
104
# File 'lib/saviour/validator.rb', line 101

def initialize(model)
  raise(ConfigurationError, "Please provide an object compatible with Saviour.") unless model.class.respond_to?(:attached_files)
  @model = model
end

Instance Method Details

#attached_filesObject



116
117
118
# File 'lib/saviour/validator.rb', line 116

def attached_files
  @model.class.attached_files
end

#validate!Object



106
107
108
109
110
111
112
113
114
# File 'lib/saviour/validator.rb', line 106

def validate!
  validations.each do |column, declared_validations|
    raise(ConfigurationError, "There is no attachment defined as '#{column}'") unless attached_files.include?(column)

    if @model.send(column).changed?
      AttachmentValidator.new(@model, column, declared_validations).validate!
    end
  end
end

#validationsObject



120
121
122
# File 'lib/saviour/validator.rb', line 120

def validations
  @model.class.__saviour_validations || {}
end