Module: RagRuby::Indexable::ClassMethods

Defined in:
lib/rag_ruby/rails/indexable.rb

Instance Method Summary collapse

Instance Method Details

#rag_index(column, metadata: nil, chunk_strategy: :recursive_character, on: [:create, :update]) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rag_ruby/rails/indexable.rb', line 10

def rag_index(column, metadata: nil, chunk_strategy: :recursive_character, on: [:create, :update])
  class_attribute :rag_column, default: column
  class_attribute :rag_metadata_proc, default: 
  class_attribute :rag_chunk_strategy, default: chunk_strategy

  if on.include?(:create)
    after_create :rag_index_record
  end

  if on.include?(:update)
    after_update :rag_index_record, if: -> { saved_change_to_attribute?(column) }
  end

  if on.include?(:destroy) || on.include?(:delete)
    after_destroy :rag_remove_record
  end
end