Module: Whatsapp
- Defined in:
- lib/whatsapp.rb,
lib/whatsapp/group.rb,
lib/whatsapp/bridge.rb,
lib/whatsapp/client.rb,
lib/whatsapp/errors.rb,
lib/whatsapp/events.rb,
lib/whatsapp/logger.rb,
lib/whatsapp/message.rb,
lib/whatsapp/session.rb,
lib/whatsapp/version.rb,
lib/whatsapp/notifier.rb,
lib/whatsapp/heartbeat.rb,
lib/whatsapp/connection.rb,
lib/whatsapp/rate_limiter.rb,
lib/whatsapp/record_proxy.rb,
lib/whatsapp/account_proxy.rb,
lib/whatsapp/configuration.rb,
lib/whatsapp/rails/helpers.rb,
lib/whatsapp/rails/railtie.rb,
lib/whatsapp/message_handler.rb,
lib/whatsapp/session_manager.rb,
lib/whatsapp/webhook_signature.rb,
lib/whatsapp/message_dispatcher.rb,
lib/whatsapp/rails/model_extension.rb,
lib/whatsapp/concerns/group_methods.rb,
lib/whatsapp/concerns/message_sending.rb,
lib/generators/whatsapp/install/install_generator.rb,
lib/generators/whatsapp/webhook/webhook_generator.rb
Overview
WhatsApp personal account integration for Ruby and Rails.
Connect WhatsApp via a local Node.js bridge powered by Baileys. Supports multi-session, rich messages, rate limiting, and health checks.
Defined Under Namespace
Modules: Concerns, Generators, Rails, WebhookSignature Classes: AccountProxy, Bridge, BridgeError, BridgeNotRunning, BridgeTimeout, Client, Configuration, Connection, Error, Events, Group, Heartbeat, Message, MessageDispatcher, MessageFailed, MessageHandler, NodeNotFound, NotConnected, Notifier, RateLimited, RateLimiter, RecordProxy, Session, SessionManager, WLogger, WebhookSignatureError, WhatsAppError
Constant Summary collapse
- VERSION =
Current gem version.
"0.1.0"
Class Method Summary collapse
-
.client ⇒ Client
Default client (shortcut for +session("default").client+).
-
.configuration ⇒ Configuration
Global configuration instance.
-
.configure {|config| ... } ⇒ void
Configure the gem.
-
.connect! ⇒ Session
Connect the default session.
-
.disconnect_all! ⇒ void
Disconnect all sessions.
-
.logger ⇒ WLogger
Global logger instance.
-
.reset! ⇒ void
Reset all state (sessions, configuration, logger).
-
.session(name) ⇒ Session
Get or create a named session.
-
.session_manager ⇒ SessionManager
Global session manager.
-
.sessions ⇒ Hash{String => Session}
All active sessions.
Class Method Details
.client ⇒ Client
Default client (shortcut for +session("default").client+).
95 96 97 |
# File 'lib/whatsapp.rb', line 95 def client session("default").client end |
.configuration ⇒ Configuration
Global configuration instance.
59 60 61 |
# File 'lib/whatsapp.rb', line 59 def configuration @configuration ||= Configuration.new end |
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Configure the gem.
52 53 54 |
# File 'lib/whatsapp.rb', line 52 def configure yield configuration end |
.connect! ⇒ Session
Connect the default session.
102 103 104 |
# File 'lib/whatsapp.rb', line 102 def connect! session("default").connect end |
.disconnect_all! ⇒ void
This method returns an undefined value.
Disconnect all sessions.
109 110 111 |
# File 'lib/whatsapp.rb', line 109 def disconnect_all! session_manager.disconnect_all! end |
.logger ⇒ WLogger
Global logger instance.
66 67 68 |
# File 'lib/whatsapp.rb', line 66 def logger @logger ||= WLogger.new(configuration.log_path, level: configuration.log_level) end |
.reset! ⇒ void
This method returns an undefined value.
Reset all state (sessions, configuration, logger).
116 117 118 119 120 121 |
# File 'lib/whatsapp.rb', line 116 def reset! session_manager.disconnect_all! @session_manager = nil @configuration = nil @logger = nil end |
.session(name) ⇒ Session
Get or create a named session.
81 82 83 |
# File 'lib/whatsapp.rb', line 81 def session(name) session_manager.session(name) end |
.session_manager ⇒ SessionManager
Global session manager.
73 74 75 |
# File 'lib/whatsapp.rb', line 73 def session_manager @session_manager ||= SessionManager.new end |
.sessions ⇒ Hash{String => Session}
All active sessions.
88 89 90 |
# File 'lib/whatsapp.rb', line 88 def sessions session_manager.sessions end |