Module: Mailgun::Tracking

Defined in:
lib/mailgun/tracking.rb,
lib/mailgun/tracking/util.rb,
lib/mailgun/tracking/payload.rb,
lib/mailgun/tracking/railtie.rb,
lib/mailgun/tracking/request.rb,
lib/mailgun/tracking/version.rb,
lib/mailgun/tracking/listener.rb,
lib/mailgun/tracking/notifier.rb,
lib/mailgun/tracking/signature.rb,
lib/mailgun/tracking/exceptions.rb,
lib/mailgun/tracking/middleware.rb,
lib/mailgun/tracking/subscriber.rb,
lib/mailgun/tracking/configuration.rb,
lib/mailgun/tracking/subscriber/evented.rb,
lib/mailgun/tracking/subscriber/all_messages.rb,
lib/generators/mailgun/tracking/install_generator.rb

Overview

Namespace for classes and modules that handle Mailgun Webhooks.

Defined Under Namespace

Modules: Subscriber, Util, Version Classes: Configuration, InstallGenerator, Listener, Middleware, Notifier, Payload, Railtie, Request, Signature

Constant Summary collapse

Error =

A general Mailgun Tracking exception.

Class.new(StandardError)
InvalidSignature =

Raised when signature is invalid.

Class.new(Error)

Class Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *arguments, &block) ⇒ Object (private)

Delegate other missing methods to configuration.



51
52
53
54
55
56
57
# File 'lib/mailgun/tracking.rb', line 51

def method_missing(method_name, *arguments, &block)
  if Configuration.instance.respond_to?(method_name)
    Configuration.instance.public_send(method_name, *arguments, &block)
  else
    super
  end
end

Class Method Details

.configure {|_self| ... } ⇒ void

This method returns an undefined value.

Default way to setup Mailgun Tracking.

Examples:

Mailgun::Tracking.configure do |config|
  config.api_key = ENV['MAILGUN_API_KEY']
  config.endpoint = '/mailgun-tracking'

  config.notifier.subscribe :delivered do |payload|
    # Do something with the incoming data.
  end

  config.notifier.subscribe :bounced, Bounced.new

  config.notifier.all do |payload|
    # Handle all event types.
  end
end

Yields:

  • (_self)

Yield Parameters:



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

def configure
  yield(self)
end

.method_missing(method_name, *arguments, &block) ⇒ Object

Delegate other missing methods to configuration.



51
52
53
54
55
56
57
# File 'lib/mailgun/tracking.rb', line 51

def method_missing(method_name, *arguments, &block)
  if Configuration.instance.respond_to?(method_name)
    Configuration.instance.public_send(method_name, *arguments, &block)
  else
    super
  end
end

.notifierMailgun::Tracking::Notifier

A Notifier instance.



46
47
48
# File 'lib/mailgun/tracking.rb', line 46

def notifier
  @notifier ||= Notifier.new
end

.respond_to_missing?(method_name, include_private = false) ⇒ Boolean

Replaces the Object.respond_to?() method.

Returns:

  • (Boolean)


60
61
62
# File 'lib/mailgun/tracking.rb', line 60

def respond_to_missing?(method_name, include_private = false)
  Configuration.instance.respond_to?(method_name) || super
end