# frozen_string_literal: true require 'net/http' require 'net/https' require 'cgi' require 'openssl' require 'base64' require 'forwardable' require 'time' require 'json' require 'gupshup-rb/version' unless defined?(Gupshup::VERSION) require 'rack/gupshup_webhook_authentication' if defined?(Rack) && defined?(Rack::MediaType) require 'gupshup-rb/util' require 'gupshup-rb/security/request_validator' require 'gupshup-rb/util/configuration' Dir[File.join(__dir__, 'gupshup-rb/framework/*.rb')].sort.each do |file| require file end module Gupshup extend SingleForwardable autoload :JWT, File.join(__dir__, 'gupshup-rb', 'jwt', 'jwt.rb') autoload :TwiML, File.join(__dir__, 'gupshup-rb', 'twiml', 'twiml.rb') autoload :HTTP, File.join(__dir__, 'gupshup-rb', 'http.rb') autoload :REST, File.join(__dir__, 'gupshup-rb', 'rest.rb') def_delegators :configuration, :src_name, :api_key, :http_client, :region, :edge, :logger ## # Pre-configure with account SID and auth token so that you don't need to # pass them to various initializers each time. def self.configure(&block) yield configuration end ## # Returns an existing or instantiates a new configuration object. def self.configuration @configuration ||= Util::Configuration.new end private_class_method :configuration end