class FieldMaskParser::Dispatcher::ActiveRecordDispatcher

Public Instance Methods

dispatch(klass, name) click to toggle source

@param [klass] inheriting ActiveRecord::Base @param [Symbol] name @return [Dispatcher::Type]

# File lib/field_mask_parser/dispatcher/active_record_dispatcher.rb, line 7
def dispatch(klass, name)
  if klass.attribute_names.include?(name.to_s)
    Type::ATTRIBUTE
  elsif (assoc = klass.reflect_on_association(name))
    case assoc
    when ActiveRecord::Reflection::HasOneReflection
      Type::HAS_ONE
    when ActiveRecord::Reflection::HasManyReflection
      Type::HAS_MANY
    else
      raise "invalid association!"
    end
  else
    Type::UNKNOWN
  end
end