class Mailgun::Base

Attributes

api_key[RW]
api_version[RW]
domain[RW]
host[RW]
protocol[RW]
response[RW]
test_mode[RW]

Public Class Methods

configure() { |self| ... } click to toggle source
# File lib/mailgun_api.rb, line 89
def self.configure
  yield self
end
fire(method, url, parameters={}) click to toggle source
# File lib/mailgun_api.rb, line 138
def self.fire(method, url, parameters={})
  begin
    parameters = {:params => parameters} if method == :get    
    return JSON(RestClient.send(method, url, parameters))
  rescue => e
    error_message = nil
    if e.respond_to? :http_body
      begin
        error_message = JSON(e.http_body)["message"]
      rescue
        raise e
      end
      raise Mailgun::Error.new(error_message)
    end
    raise e
  end
end
new(params={}) click to toggle source
# File lib/mailgun_api.rb, line 93
def initialize(params={})
  raise ArgumentError.new(":api_key is a required argument to initialize Mailgun") if params.fetch(:api_key).nil?

  @host         = params.fetch(:host)
  @protocol     = params.fetch(:protocol)
  @api_version  = params.fetch(:api_version)
  @test_mode    = params.fetch(:test_mode)
  @api_key      = params.fetch(:api_key)
  @domain       = params.fetch(:domain, nil)
end

Public Instance Methods

api_url() click to toggle source

Returns the api url used in all Mailgun API calls

# File lib/mailgun_api.rb, line 133
def api_url
  "#{protocol}://api:#{api_key}@#{host}/#{api_version}"
end
create_list(list_name, options={}) click to toggle source
# File lib/mailgun_api.rb, line 122
def create_list(list_name, options={})
  Mailgun::List.new(self).create("#{list_name}@#{domain}", options)
end
create_message(params) click to toggle source
# File lib/mailgun_api.rb, line 127
def create_message(params)
  Mailgun::Message.new(params)
end
domains() click to toggle source
# File lib/mailgun_api.rb, line 114
def domains
  Mailgun::Domain.new(self).list
end
find_domain(domain_name) click to toggle source
# File lib/mailgun_api.rb, line 118
def find_domain(domain_name)
  Mailgun::Domain.new(self).list(domain_name)
end
find_list(list_name) click to toggle source
# File lib/mailgun_api.rb, line 104
def find_list(list_name)
  list = Mailgun::List.new(self)
  list.find("#{list_name}@#{domain}")
  list
end
lists() click to toggle source
# File lib/mailgun_api.rb, line 110
def lists
  Mailgun::List.new(self).list
end