Sha256: 3da29e117565f3c715bf66ad9d071b796ad9ec67fba0191c6ade615a1de6404d
Contents?: true
Size: 894 Bytes
Versions: 2
Compression:
Stored size: 894 Bytes
Contents
module DbClustering module DatasourceAdapters class ActiveRecord def initialize(relation:) @relation = relation end def iterate_all_points points_count = @relation.count current_index = 0 @relation.find_each do |datasource_point| point = DbClustering::Models::Point.new(datasource_point) yield(point, current_index, points_count) current_index += 1 end end def neighbors(point:, distance_metric:, max_distance:) neighbors = [] @relation.find_each do |neighbor_candidate| candidate_point = DbClustering::Models::Point.new(neighbor_candidate) if distance_metric.distance(point.vector, candidate_point.vector) <= max_distance neighbors << candidate_point end end neighbors end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
db_clustering-0.1.6 | lib/datasource_adapters/active_record.rb |
db_clustering-0.1.5 | lib/datasource_adapters/active_record.rb |