4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/settingcrazy/settings_validator.rb', line 4
def validate(record)
self.record = record
self.settings = record.settings
self.template = settings.template
if record.persisted? && template.present?
template.enums.symbolize_keys.each do |key, name_value_pairs|
enum_options = template.enum_options(key)
current_value = settings.send(key)
validate_presence(key, current_value) if enum_options[:required]
validate_singleness(key, current_value) unless enum_options[:multiple]
validate_dependent(key, current_value, enum_options[:dependent]) if enum_options[:dependent] && current_value.present?
validate_range(key, current_value, name_value_pairs.values) if enum_options[:type] != 'text' && current_value.present?
end
end
end
|