Class: MijDiscord::Cache::ChannelCache
- Inherits:
-
Object
- Object
- MijDiscord::Cache::ChannelCache
- Defined in:
- lib/mij-discord/cache.rb
Constant Summary collapse
- MAX_MESSAGES =
200
Instance Method Summary collapse
- #get_message(key, local: false) ⇒ Object
-
#initialize(channel, bot, max_messages: MAX_MESSAGES) ⇒ ChannelCache
constructor
A new instance of ChannelCache.
- #inspect ⇒ Object
- #put_message(data, update: false) ⇒ Object
- #remove_message(key) ⇒ Object
- #reset ⇒ Object
Constructor Details
#initialize(channel, bot, max_messages: MAX_MESSAGES) ⇒ ChannelCache
Returns a new instance of ChannelCache.
264 265 266 267 268 269 |
# File 'lib/mij-discord/cache.rb', line 264 def initialize(channel, bot, max_messages: MAX_MESSAGES) @channel, @bot = channel, bot @max_messages = reset end |
Instance Method Details
#get_message(key, local: false) ⇒ Object
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 |
# File 'lib/mij-discord/cache.rb', line 275 def (key, local: false) id = key&.to_id || return return @messages[id] if @messages.has_key?(id) return nil if local begin response = case @bot.auth.type when :bot then MijDiscord::Core::API::Channel.(@bot.auth, @channel.id, key) when :user then MijDiscord::Core::API::Channel.(@bot.auth, @channel.id, 1, nil, nil, key) end rescue MijDiscord::Errors::NotFound return nil end = @messages.store(id, MijDiscord::Data::Message.new(JSON.parse(response), @bot)) @messages.shift while @messages.length > @max_messages end |
#inspect ⇒ Object
312 313 314 |
# File 'lib/mij-discord/cache.rb', line 312 def inspect MijDiscord.make_inspect(self) end |
#put_message(data, update: false) ⇒ Object
295 296 297 298 299 300 301 302 303 304 305 306 |
# File 'lib/mij-discord/cache.rb', line 295 def (data, update: false) id = data['id'].to_i if @messages.has_key?(id) @messages[id].update_data(data) if update return @messages[id] end = @messages.store(id, MijDiscord::Data::Message.new(data, @bot)) @messages.shift while @messages.length > @max_messages end |
#remove_message(key) ⇒ Object
308 309 310 |
# File 'lib/mij-discord/cache.rb', line 308 def (key) @messages.delete(key&.to_id) end |
#reset ⇒ Object
271 272 273 |
# File 'lib/mij-discord/cache.rb', line 271 def reset @messages = {} end |