Class: ClaudeMemory::Core::ResultBuilder
- Inherits:
-
Object
- Object
- ClaudeMemory::Core::ResultBuilder
- Defined in:
- lib/claude_memory/core/result_builder.rb
Overview
Pure utility for building fact result hashes from batch-fetched data Follows Functional Core pattern - no I/O, just transformations
Class Method Summary collapse
-
.build_results(fact_ids, facts_by_id:, receipts_by_fact_id:, source:, similarity: nil) ⇒ Array<Hash>
Build fact results from batch-fetched facts and receipts.
-
.build_results_with_scores(matches, facts_by_id:, receipts_by_fact_id:, source:) ⇒ Array<Hash>
Build results with variable similarity scores.
Class Method Details
.build_results(fact_ids, facts_by_id:, receipts_by_fact_id:, source:, similarity: nil) ⇒ Array<Hash>
Build fact results from batch-fetched facts and receipts
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/claude_memory/core/result_builder.rb', line 15 def self.build_results(fact_ids, facts_by_id:, receipts_by_fact_id:, source:, similarity: nil) fact_ids.map do |fact_id| fact = facts_by_id[fact_id] next unless fact result = { fact: fact, receipts: receipts_by_fact_id[fact_id] || [], source: source } result[:similarity] = similarity if similarity result end.compact end |
.build_results_with_scores(matches, facts_by_id:, receipts_by_fact_id:, source:) ⇒ Array<Hash>
Build results with variable similarity scores
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/claude_memory/core/result_builder.rb', line 36 def self.build_results_with_scores(matches, facts_by_id:, receipts_by_fact_id:, source:) matches.map do |match| fact_id = match[:fact_id] || match[:candidate]&.[](:fact_id) next unless fact_id fact = facts_by_id[fact_id] next unless fact { fact: fact, receipts: receipts_by_fact_id[fact_id] || [], source: source, similarity: match[:similarity] } end.compact end |