Skip to content

Persistence

abstract class Tourmaline::Persistence
inherits Reference #

Abstract class meant to be a base for other persistence classes. The point of persistence (currently) is to allow Users and Chats to be saved as they're seen, and then provide a way for both to be fetched by either id or username.

Example:

bot = MyBot.new(API_KEY, persistence: Tourmaline::JsonPersistence.new)
# ... do some things
if user = bot.persistence.get_user?("foobar")
  pp user
end

Direct known subclasses#

Tourmaline::HashPersistence Tourmaline::NilPersistence

Class methods#

.new #

Methods#

abstract #chat_exists?(chat_id : Int) : Bool #

Returns true if the chat with the provided chat_id exists.

abstract #chat_exists?(username : String) : Bool #

Returns true if the chat with the provided username exists.

abstract #cleanup #

Gets called upon exit. It can be used to perform any necessary cleanup.

abstract #get_chat(chat_id : Int) : Chat? #

Fetches a chat by chat_id. Returns nil if the chat is not found.

abstract #get_chat(username : String) : Chat? #

Fetches a chat by username. Returns nil if the chat is not found.

abstract #get_user(user_id : Int) : User? #

Fetches a user by user_id. Returns nil if the user is not found.

abstract #get_user(username : String) : User? #

Fetches a user by username. Returns nil if the user is not found.

abstract #handle_update(update : Update) #

Takes an Update object, pulls out all unique Chats and Users, and uses update_user and update_chat on each of them respectively.

abstract #init #

Gets called when the bot is initialized. This can be used for setup if you need access to the bot instance.

abstract #update_chat(chat : Chat) : Chat #

Create or update the provided Chat.

abstract #update_user(user : User) : User #

Create or update the provided User.

abstract #user_exists?(user_id : Int) : Bool #

Returns true if the user with the provided user_id exists.

abstract #user_exists?(usename : String) : Bool #

Returns true if the user with the provided username exists.