8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/gem_config/rules.rb', line 8
def check(key, value)
error_message = case
when !self.has_key?(key.to_sym)
'no rule found'
when self[key.to_sym].has_key?(:classes) && Array(self[key.to_sym][:classes]).none? { |klass| value.is_a?(klass) }
"must be an instance of one of the following classes: #{Array(self[key.to_sym][:classes]).join(', ')}"
when self[key.to_sym].has_key?(:values) && !Array(self[key.to_sym][:values]).include?(value)
"must be one of the following values: #{Array(self[key.to_sym][:values]).join(', ')}"
end
raise InvalidKeyError, "#{value} is not a valid value for #{key}: #{error_message}" unless error_message.nil?
end
|