module Sequel::Plugins::Pgvector::InstanceMethods
def [](k)
def [](k) if self.class.vector_columns.key?(k.to_sym) ::Pgvector.decode(super) else super end end
def []=(k, v)
def []=(k, v) if self.class.vector_columns.key?(k.to_sym) && !v.is_a?(String) super(k, ::Pgvector.encode(v)) else super end end
def nearest_neighbors(column, **options)
def nearest_neighbors(column, **options) column = column.to_sym # important! check if neighbor attribute before calling send raise ArgumentError, "Invalid column" unless self.class.vector_columns[column] self.class .nearest_neighbors(column, self[column], **options) .exclude(primary_key => self[primary_key]) end