Class: CarrierWaveDirect::Validations::ActiveModel::RemoteNetUrlFormatValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
lib/carrierwave_direct/validations/active_model.rb

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/carrierwave_direct/validations/active_model.rb', line 35

def validate_each(record, attribute, value)
  if record.new_record? && record.send("has_remote_#{attribute}_net_url?")
    remote_net_url = record.send("remote_#{attribute}_net_url")
    uploader = record.send(attribute)
    url_scheme_white_list = uploader.url_scheme_white_list
    if (remote_net_url !~ URI.regexp(url_scheme_white_list) || remote_net_url !~ /#{uploader.extension_regexp}\z/)
      record.errors.add(
        :"remote_#{attribute}_net_url",
        :carrierwave_direct_remote_net_url_invalid,
        :extension_white_list => uploader.extension_white_list,
        :url_scheme_white_list => url_scheme_white_list
      )
    end
  end
end