Sha256: 8e110b7299884892f74f2b0b18c9e6d51528e5de75dbc170a44d3954c090d372

Contents?: true

Size: 1.31 KB

Versions: 5

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

require 'mailerlite/connection'
require 'mailerlite/configuration'

require 'mailerlite/clients/account'
require 'mailerlite/clients/campaigns'
require 'mailerlite/clients/fields'
require 'mailerlite/clients/groups'
require 'mailerlite/clients/segments'
require 'mailerlite/clients/subscribers'
require 'mailerlite/clients/webhooks'

module MailerLite
  # Wrapper class for all actions.
  class Client
    include MailerLite::Clients::Account
    include MailerLite::Clients::Campaigns
    include MailerLite::Clients::Fields
    include MailerLite::Clients::Groups
    include MailerLite::Clients::Segments
    include MailerLite::Clients::Subscribers
    include MailerLite::Clients::Webhooks

    # Initialize client.
    #
    # @param options [Hash] A customizable set of options.
    # @option options [String] :api_key API Key provider from MailerLite.
    def initialize(options = {})
      config.api_key = options[:api_key] if options[:api_key]
    end

    # @return [Configuration]
    def config
      @config ||= Configuration.new
    end
    alias configuration config

    # Configure client with a block of settings.
    def configure
      yield(config) if block_given?
      true
    end

    # @return [Connection]
    def connection
      @connection ||= Connection.new(self)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mailerlite-1.10.0 lib/mailerlite/client.rb
mailerlite-1.9.0 lib/mailerlite/client.rb
mailerlite-1.8.0 lib/mailerlite/client.rb
mailerlite-1.7.0 lib/mailerlite/client.rb
mailerlite-1.6.1 lib/mailerlite/client.rb