Class: MatrixAgent

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
lib/generators/active_matrix/install/templates/matrix_agent.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#passwordObject

Password handling



99
100
101
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 99

def password
  @password
end

Instance Method Details

#authenticate(password) ⇒ Object



101
102
103
104
105
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 101

def authenticate(password)
  return false unless encrypted_password.present?

  BCrypt::Password.new(encrypted_password) == password
end

#bot_instanceObject

Instance methods



70
71
72
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 70

def bot_instance
  @bot_instance ||= bot_class.constantize.new(client) if running?
end

#clientObject



74
75
76
77
78
79
80
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 74

def client
  @client ||= if access_token.present?
                ActiveMatrix::Client.new(homeserver, access_token: access_token)
              else
                ActiveMatrix::Client.new(homeserver)
              end
end

#increment_messages_handled!Object



90
91
92
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 90

def increment_messages_handled!
  increment!(:messages_handled)
end

#memoryObject



86
87
88
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 86

def memory
  @memory ||= ActiveMatrix::Memory::AgentMemory.new(self)
end

#running?Boolean

Returns:

  • (Boolean)


82
83
84
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 82

def running?
  %i[online_idle online_busy].include?(state.to_sym)
end

#update_activity!Object



94
95
96
# File 'lib/generators/active_matrix/install/templates/matrix_agent.rb', line 94

def update_activity!
  update(last_active_at: Time.current)
end