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