validators.rb revision 687202f41b738a4e3ebecdc17946de02fdbe9feb
1516N/Amodule SettingsValidationWrapper::Validators
565N/A class AbsoluteFilepathValidator < ActiveModel::EachValidator
565N/A def validate_each(record, attribute, value)
565N/A unless value.start_with('/')
565N/A record.errors.add attribute, 'is not an absolute path'
565N/A end
565N/A end
565N/A end
565N/A
565N/A class ClassValidator < ActiveModel::EachValidator
565N/A def validate_each(record, attribute, value)
565N/A unless options[:in].include?(value.class)
565N/A record.errors.add attribute,
565N/A "must have value of one of the classes: #{options[:in]}"
565N/A end
565N/A end
565N/A end
565N/A
565N/A class DirectoryValidator < ActiveModel::EachValidator
565N/A def validate_each(record, attribute, value)
565N/A unless File.directory?(value)
926N/A record.errors.add attribute, 'is not a directory'
926N/A end
2197N/A end
926N/A end
565N/A
2026N/A class ElementsAreAbsoluteFilepathsValidator < ActiveModel::EachValidator
1050N/A def validate_each(record, attribute, value)
926N/A valid = value.is_a?(Array) && value.all? do |elem|
926N/A %w(/ ~/).any? { |start| elem.start_with?(start) }
926N/A end
926N/A unless valid
926N/A record.errors.add attribute,
838N/A 'all elements must be absolute filepaths'
565N/A end
2034N/A end
2034N/A end
2034N/A
1540N/A class ElementsArePresentValidator < ActiveModel::EachValidator
1540N/A def validate_each(record, attribute, value)
1540N/A unless value.is_a?(Array) && value.all? { |elem| elem.present? }
1540N/A record.errors.add attribute,
1540N/A 'all elements must not be blank'
1968N/A end
1540N/A end
2034N/A end
2034N/A
2200N/A class ElementsAreEmailValidator < ActiveModel::EachValidator
2034N/A def validate_each(record, attribute, value)
2034N/A unless value.is_a?(Array) && value.all? { |elem| elem.match(/@/) }
2034N/A record.errors.add attribute,
565N/A 'all elements must be email addresses'
1710N/A end
1710N/A end
1710N/A end
1710N/A
1710N/A class ElementsHaveKeysValidator < ActiveModel::EachValidator
1710N/A def validate_each(record, attribute, value)
1710N/A valid = value.is_a?(Array) && value.all? do |elem|
1710N/A options[:keys].all? { |key| !elem[key].nil? }
1710N/A end
1710N/A unless valid
1710N/A record.errors.add attribute,
1710N/A "all elements must have those keys: #{options[:keys]}"
1710N/A end
1710N/A end
1710N/A end
1710N/A
1710N/A class ElementsOneExecutableValidator < ActiveModel::EachValidator
1710N/A def validate_each(record, attribute, value)
1710N/A unless value.any? { |filepath| File.executable?(filepath) }
1710N/A record.errors.add attribute, 'must contain at least one executable file'
1710N/A end
1710N/A end
1710N/A end
1710N/A
1710N/A class EmailValidator < ActiveModel::EachValidator
1710N/A def validate_each(record, attribute, value)
1710N/A unless value.match(/@/)
1710N/A record.errors.add attribute, 'must be an email address'
1710N/A end
1710N/A end
1710N/A end
565N/Aend
565N/A