Class: Leann::Rails::Passage

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/leann/rails/active_record/passage.rb

Overview

ActiveRecord model for storing passages/documents within an index

Examples:

passage = Leann::Rails::Passage.find(123)
passage.text      # => "Document content..."
passage.  # => { category: "docs" }

Instance Method Summary collapse

Instance Method Details

#inspectString

Detailed inspection

Returns:

  • (String)


50
51
52
53
# File 'lib/leann/rails/active_record/passage.rb', line 50

def inspect
  text_preview = text.length > 50 ? "#{text[0..47]}..." : text
  "#<Leann::Rails::Passage id=#{id} external_id=#{external_id.inspect} text=#{text_preview.inspect}>"
end

#metadata_symHash

Get metadata with symbolized keys

Returns:

  • (Hash)


28
29
30
# File 'lib/leann/rails/active_record/passage.rb', line 28

def 
  ( || {}).transform_keys(&:to_sym)
end

#neighbor_idsArray<String>

Get neighbor IDs

Returns:

  • (Array<String>)


34
35
36
# File 'lib/leann/rails/active_record/passage.rb', line 34

def neighbor_ids
  neighbors || []
end

#to_hHash

Convert to hash for search results

Returns:

  • (Hash)


40
41
42
43
44
45
46
# File 'lib/leann/rails/active_record/passage.rb', line 40

def to_h
  {
    id: external_id,
    text: text,
    metadata: 
  }
end