Class: RailsConsoleAi::Memory
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- RailsConsoleAi::Memory
- Defined in:
- app/models/rails_console_ai/memory.rb
Class Method Summary collapse
Instance Method Summary collapse
- #last_used_at ⇒ Object
- #tags ⇒ Object
- #tags=(value) ⇒ Object
- #to_hash ⇒ Object
- #update_with_version!(attrs, edited_by: nil, change_note: nil) ⇒ Object
- #use_count ⇒ Object
Class Method Details
.connection ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'app/models/rails_console_ai/memory.rb', line 17 def self.connection klass = RailsConsoleAi.configuration.connection_class if klass klass = Object.const_get(klass) if klass.is_a?(String) klass.connection else super end end |
.record_use!(id) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/models/rails_console_ai/memory.rb', line 43 def self.record_use!(id) return false unless connection.column_exists?(table_name, :use_count) where(id: id).update_all([ 'use_count = COALESCE(use_count, 0) + 1, last_used_at = ?', Time.now.utc ]) true rescue ::ActiveRecord::ActiveRecordError => e RailsConsoleAi.logger.warn("RailsConsoleAi::Memory.record_use!(#{id.inspect}) failed: #{e.}") false end |
Instance Method Details
#last_used_at ⇒ Object
39 40 41 |
# File 'app/models/rails_console_ai/memory.rb', line 39 def last_used_at has_attribute?(:last_used_at) ? read_attribute(:last_used_at) : nil end |
#tags ⇒ Object
27 28 29 |
# File 'app/models/rails_console_ai/memory.rb', line 27 def decode_json_array(read_attribute(:tags)) end |
#tags=(value) ⇒ Object
31 32 33 |
# File 'app/models/rails_console_ai/memory.rb', line 31 def (value) write_attribute(:tags, encode_json_array(value)) end |
#to_hash ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'app/models/rails_console_ai/memory.rb', line 55 def to_hash { 'id' => id, 'name' => name, 'description' => description, 'tags' => , 'use_count' => use_count, 'last_used_at' => last_used_at, 'source' => :db, 'updated_at' => updated_at } end |
#update_with_version!(attrs, edited_by: nil, change_note: nil) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'app/models/rails_console_ai/memory.rb', line 68 def update_with_version!(attrs, edited_by: nil, change_note: nil) transaction do assign_attributes(attrs) save! RailsConsoleAi::MemoryVersion.create!( memory_id: id, name: name, description: description, tags: , edited_by: edited_by, change_note: change_note ) end self end |
#use_count ⇒ Object
35 36 37 |
# File 'app/models/rails_console_ai/memory.rb', line 35 def use_count has_attribute?(:use_count) ? (read_attribute(:use_count) || 0) : 0 end |