Module: Arafa
- Defined in:
- lib/arafa.rb,
lib/arafa/types.rb,
lib/arafa/errors.rb,
lib/arafa/message.rb,
lib/arafa/version.rb,
lib/arafa/send_result.rb,
lib/arafa/airtime/base.rb,
lib/arafa/phone_number.rb,
lib/arafa/ussd/request.rb,
lib/arafa/configuration.rb,
lib/arafa/ussd/response.rb,
lib/arafa/providers/base.rb,
lib/arafa/ussd/wasiliana.rb,
lib/arafa/airtime/wasiliana.rb,
lib/arafa/providers/wasiliana.rb,
lib/arafa/data/africas_talking.rb,
lib/arafa/ussd/africas_talking.rb,
lib/arafa/whatsapp/message_body.rb,
lib/arafa/airtime/africas_talking.rb,
lib/arafa/contracts/base_contract.rb,
lib/arafa/whatsapp/africas_talking.rb,
lib/arafa/providers/africas_talking.rb,
lib/arafa/contracts/airtime_contract.rb,
lib/arafa/contracts/wasiliana_contract.rb,
lib/arafa/schemas/ussd_callback_schema.rb,
lib/arafa/contracts/mobile_data_contract.rb,
lib/arafa/schemas/airtime_request_schema.rb,
lib/arafa/schemas/delivery_report_schema.rb,
lib/arafa/contracts/africas_talking_contract.rb,
lib/arafa/contracts/africas_talking_airtime_contract.rb,
sig/arafa.rbs
Overview
A single, uniform interface to Kenyan SMS/USSD/Airtime gateways.
Defined Under Namespace
Modules: Airtime, Configuration, Contracts, Data, PhoneNumber, Providers, Schemas, Types, Ussd, Whatsapp Classes: AfricasTalking, AuthenticationError, Error, InvalidRequestError, Message, NetworkError, ProviderServerError, RateLimitError, SendResult, ValidationError, Wasiliana
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
- .config ⇒ Object
- .configure(&block) ⇒ Object
- .logger ⇒ Object
-
.register(name, klass) ⇒ Object
Registers a provider class under a name so it can be dispatched to at runtime, e.g.
-
.send(name, **kwargs) ⇒ Object
Dispatches to a registered provider by name, e.g.
Class Method Details
.config ⇒ Object
33 34 35 |
# File 'lib/arafa.rb', line 33 def config Configuration.config end |
.configure(&block) ⇒ Object
29 30 31 |
# File 'lib/arafa.rb', line 29 def configure(&block) Configuration.configure(&block) end |
.logger ⇒ Object
37 38 39 |
# File 'lib/arafa.rb', line 37 def logger config.logger end |
.register(name, klass) ⇒ Object
Registers a provider class under a name so it can be dispatched to at
runtime, e.g. Arafa.register(:wasiliana, Arafa::Wasiliana).
43 44 45 |
# File 'lib/arafa.rb', line 43 def register(name, klass) registry[name.to_sym] = klass end |
.send(name, **kwargs) ⇒ Object
Dispatches to a registered provider by name, e.g.
Arafa.send(:wasiliana, text: "Hello", to: "0712345678").
49 50 51 52 |
# File 'lib/arafa.rb', line 49 def send(name, **kwargs) provider = registry.fetch(name.to_sym) { raise ArgumentError, "unknown provider: #{name.inspect}" } provider.send(**kwargs) end |