class PetfinderV2::Services::Option
Public Class Methods
new(klass, choices = [])
click to toggle source
# File lib/petfinder_V2/services/option.rb, line 4 def initialize(klass, choices = []) @klass = klass @choices = choices end
Public Instance Methods
validate_value(value, key)
click to toggle source
# File lib/petfinder_V2/services/option.rb, line 9 def validate_value(value, key) if value.respond_to?(:each) validate_collection_val(value, key) else validate_single_val(value, key) end end
Private Instance Methods
validate_collection_val(collection, key)
click to toggle source
# File lib/petfinder_V2/services/option.rb, line 28 def validate_collection_val(collection, key) collection.inject([]) { |memo, val| memo << validate_single_val(val, key) } end
validate_single_val(val, key)
click to toggle source
# File lib/petfinder_V2/services/option.rb, line 19 def validate_single_val(val, key) if !val.is_a?(@klass) "#{key.capitalize}: #{val} must be a kind of #{@klass}" elsif !@choices.empty? && !@choices.include?(val) "#{key.capitalize}: #{val} is not an allowed value. " \ "The allowed values are: #{@choices.join(',')}" end end