Module: Telegem

Defined in:
lib/core/composer.rb,
lib/telegem.rb,
lib/telegem.rb,
lib/core/bot.rb,
lib/api/types.rb,
lib/api/client.rb,
lib/core/scene.rb,
lib/core/context.rb,
lib/markup/inline.rb,
lib/webhook/server.rb,
lib/core/rate_limit.rb,
lib/markup/keyboard.rb,
lib/session/middleware.rb,
lib/plugins/file_extract.rb,
lib/session/memory_store.rb,
lib/session/scene_middleware.rb

Overview

lib/session/middleware.rb

Defined Under Namespace

Modules: API, Core, Markup, Plugins, Scene, Session, Types, Webhook Classes: RateLimit

Constant Summary collapse

VERSION =
"3.3.1".freeze

Class Method Summary collapse

Class Method Details

.force_reply(**options) ⇒ Object



43
44
45
# File 'lib/telegem.rb', line 43

def self.force_reply(**options)
  Markup.force_reply(**options)
end

.infoObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/telegem.rb', line 56

def self.info
  <<~INFO
    🤖 Telegem #{VERSION}
    Modern Telegram Bot Framework for Ruby
    
    Features:
    • Async HTTPX-based API client
    • Scene system for multi-step conversations  
    • Express.js-style middleware
    • Clean Telegraf.js-inspired DSL
    • Webhook and polling support
    • Built-in session management
    • Fluent keyboard DSL
    • Cloud-ready webhook server
    
    Website: https://gitlab.com/ruby-telegem/telegem
  INFO
end

.inline(&block) ⇒ Object



35
36
37
# File 'lib/telegem.rb', line 35

def self.inline(&block)
  Markup.inline(&block)
end

.keyboard(&block) ⇒ Object



31
32
33
# File 'lib/telegem.rb', line 31

def self.keyboard(&block)
  Markup.keyboard(&block)
end

.new(token, **options) ⇒ Object



26
27
28
# File 'lib/telegem.rb', line 26

def self.new(token, **options)
  Core::Bot.new(token, **options)
end

.remove_keyboard(**options) ⇒ Object



39
40
41
# File 'lib/telegem.rb', line 39

def self.remove_keyboard(**options)
  Markup.remove(**options)
end

.versionObject



47
48
49
# File 'lib/telegem.rb', line 47

def self.version
  VERSION
end

.webhook(bot, **options) ⇒ Object



51
52
53
54
# File 'lib/telegem.rb', line 51

def self.webhook(bot, **options)
  require_relative 'webhook/server'
  Webhook::Server.setup(bot, **options)
end