mailgunner 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +17 -19
 - data/lib/mailgunner.rb +29 -3
 - data/mailgunner.gemspec +3 -2
 - data/spec/mailgunner_spec.rb +90 -17
 - metadata +21 -5
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,14 +1,26 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            mailgunner
         
     | 
| 
      
 2 
     | 
    
         
            +
            ==========
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
            A Ruby wrapper for the [Mailgun API](http://documentation.mailgun.net/api_reference.html).
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Installation
         
     | 
| 
      
 9 
     | 
    
         
            +
            ------------
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                $ gem install mailgunner
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            Quick start
         
     | 
| 
       6 
15 
     | 
    
         
             
            -----------
         
     | 
| 
       7 
16 
     | 
    
         | 
| 
       8 
17 
     | 
    
         
             
            ```ruby
         
     | 
| 
       9 
18 
     | 
    
         
             
            require 'mailgunner'
         
     | 
| 
       10 
19 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            mailgun = Mailgunner::Client.new( 
     | 
| 
      
 20 
     | 
    
         
            +
            mailgun = Mailgunner::Client.new({
         
     | 
| 
      
 21 
     | 
    
         
            +
              domain: 'samples.mailgun.org',
         
     | 
| 
      
 22 
     | 
    
         
            +
              api_key: 'key-3ax6xnjp29jd6fds4gc373sgvjxteol0'
         
     | 
| 
      
 23 
     | 
    
         
            +
            })
         
     | 
| 
       12 
24 
     | 
    
         | 
| 
       13 
25 
     | 
    
         
             
            response = mailgun.get_stats(limit: 5)
         
     | 
| 
       14 
26 
     | 
    
         | 
| 
         @@ -20,20 +32,7 @@ end 
     | 
|
| 
       20 
32 
     | 
    
         
             
            ```
         
     | 
| 
       21 
33 
     | 
    
         | 
| 
       22 
34 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            --------------------------------
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
            Mailgunner::Client defaults to using the "json" library which is available
         
     | 
| 
       27 
     | 
    
         
            -
            in the Ruby 1.9 standard library, and as a gem for Ruby 1.8. You can specify
         
     | 
| 
       28 
     | 
    
         
            -
            an alternative implementation using the json option when constructing a client
         
     | 
| 
       29 
     | 
    
         
            -
            object. For example, to use [multi_json](https://rubygems.org/gems/multi_json):
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            ```ruby
         
     | 
| 
       32 
     | 
    
         
            -
            mailgun = Mailgunner::Client.new(:json => MultiJson)
         
     | 
| 
       33 
     | 
    
         
            -
            ```
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
            Environment Variables
         
     | 
| 
      
 35 
     | 
    
         
            +
            Environment variables
         
     | 
| 
       37 
36 
     | 
    
         
             
            ---------------------
         
     | 
| 
       38 
37 
     | 
    
         | 
| 
       39 
38 
     | 
    
         
             
            Best practice for storing credentials for external services is to use environment
         
     | 
| 
         @@ -42,4 +41,3 @@ variables, as described by [12factor.net/config](http://www.12factor.net/config) 
     | 
|
| 
       42 
41 
     | 
    
         
             
            Mailgunner::Client defaults to extracting the domain and api_key values it needs
         
     | 
| 
       43 
42 
     | 
    
         
             
            from the MAILGUN_API_KEY and MAILGUN_SMTP_LOGIN environment variables. These will
         
     | 
| 
       44 
43 
     | 
    
         
             
            exist if you are using Mailgun on Heroku, or you can set them manually.
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
    
        data/lib/mailgunner.rb
    CHANGED
    
    | 
         @@ -5,20 +5,38 @@ require 'uri' 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module Mailgunner
         
     | 
| 
       7 
7 
     | 
    
         
             
              class Client
         
     | 
| 
       8 
     | 
    
         
            -
                attr_accessor :domain, :api_key, : 
     | 
| 
      
 8 
     | 
    
         
            +
                attr_accessor :domain, :api_key, :http
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                def initialize(options = {})
         
     | 
| 
       11 
11 
     | 
    
         
             
                  @domain = options.fetch(:domain) { ENV.fetch('MAILGUN_SMTP_LOGIN').split('@').last }
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                  @api_key = options.fetch(:api_key) { ENV.fetch('MAILGUN_API_KEY') }
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                   
     | 
| 
      
 15 
     | 
    
         
            +
                  if options.has_key?(:json)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    Kernel.warn 'Mailgunner::Client :json option is deprecated'
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    @json = options[:json]
         
     | 
| 
      
 19 
     | 
    
         
            +
                  else
         
     | 
| 
      
 20 
     | 
    
         
            +
                    @json = JSON
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
       16 
22 
     | 
    
         | 
| 
       17 
23 
     | 
    
         
             
                  @http = Net::HTTP.new('api.mailgun.net', Net::HTTP.https_default_port)
         
     | 
| 
       18 
24 
     | 
    
         | 
| 
       19 
25 
     | 
    
         
             
                  @http.use_ssl = true
         
     | 
| 
       20 
26 
     | 
    
         
             
                end
         
     | 
| 
       21 
27 
     | 
    
         | 
| 
      
 28 
     | 
    
         
            +
                def json
         
     | 
| 
      
 29 
     | 
    
         
            +
                  Kernel.warn 'Mailgunner::Client#json is deprecated'
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  @json
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                def json=(json)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  Kernel.warn 'Mailgunner::Client#json= is deprecated'
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  @json = json
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
       22 
40 
     | 
    
         
             
                def send_message(attributes = {})
         
     | 
| 
       23 
41 
     | 
    
         
             
                  post("/v2/#{escape @domain}/messages", attributes)
         
     | 
| 
       24 
42 
     | 
    
         
             
                end
         
     | 
| 
         @@ -112,18 +130,26 @@ module Mailgunner 
     | 
|
| 
       112 
130 
     | 
    
         
             
                end
         
     | 
| 
       113 
131 
     | 
    
         | 
| 
       114 
132 
     | 
    
         
             
                def get_mailboxes(params = {})
         
     | 
| 
      
 133 
     | 
    
         
            +
                  Kernel.warn 'Mailgunner::Client#get_mailboxes is deprecated'
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
       115 
135 
     | 
    
         
             
                  get("/v2/#{escape @domain}/mailboxes", params)
         
     | 
| 
       116 
136 
     | 
    
         
             
                end
         
     | 
| 
       117 
137 
     | 
    
         | 
| 
       118 
138 
     | 
    
         
             
                def add_mailbox(attributes = {})
         
     | 
| 
      
 139 
     | 
    
         
            +
                  Kernel.warn 'Mailgunner::Client#add_mailbox is deprecated'
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
       119 
141 
     | 
    
         
             
                  post("/v2/#{escape @domain}/mailboxes", attributes)
         
     | 
| 
       120 
142 
     | 
    
         
             
                end
         
     | 
| 
       121 
143 
     | 
    
         | 
| 
       122 
144 
     | 
    
         
             
                def update_mailbox(name, attributes = {})
         
     | 
| 
      
 145 
     | 
    
         
            +
                  Kernel.warn 'Mailgunner::Client#update_mailbox is deprecated'
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
       123 
147 
     | 
    
         
             
                  put("/v2/#{escape @domain}/mailboxes/#{escape name}", attributes)
         
     | 
| 
       124 
148 
     | 
    
         
             
                end
         
     | 
| 
       125 
149 
     | 
    
         | 
| 
       126 
150 
     | 
    
         
             
                def delete_mailbox(name)
         
     | 
| 
      
 151 
     | 
    
         
            +
                  Kernel.warn 'Mailgunner::Client#delete_mailbox is deprecated'
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
       127 
153 
     | 
    
         
             
                  delete("/v2/#{escape @domain}/mailboxes/#{escape name}")
         
     | 
| 
       128 
154 
     | 
    
         
             
                end
         
     | 
| 
       129 
155 
     | 
    
         | 
| 
         @@ -294,7 +320,7 @@ module Mailgunner 
     | 
|
| 
       294 
320 
     | 
    
         
             
                end
         
     | 
| 
       295 
321 
     | 
    
         | 
| 
       296 
322 
     | 
    
         
             
                def object
         
     | 
| 
       297 
     | 
    
         
            -
                  @object ||= @json. 
     | 
| 
      
 323 
     | 
    
         
            +
                  @object ||= @json.parse(body)
         
     | 
| 
       298 
324 
     | 
    
         
             
                end
         
     | 
| 
       299 
325 
     | 
    
         
             
              end
         
     | 
| 
       300 
326 
     | 
    
         
             
            end
         
     | 
    
        data/mailgunner.gemspec
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       2 
2 
     | 
    
         
             
              s.name = 'mailgunner'
         
     | 
| 
       3 
     | 
    
         
            -
              s.version = '1. 
     | 
| 
      
 3 
     | 
    
         
            +
              s.version = '1.1.0'
         
     | 
| 
       4 
4 
     | 
    
         
             
              s.platform = Gem::Platform::RUBY
         
     | 
| 
       5 
5 
     | 
    
         
             
              s.authors = ['Tim Craft']
         
     | 
| 
       6 
6 
     | 
    
         
             
              s.email = ['mail@timcraft.com']
         
     | 
| 
         @@ -9,6 +9,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       9 
9 
     | 
    
         
             
              s.summary = 'See description'
         
     | 
| 
       10 
10 
     | 
    
         
             
              s.files = Dir.glob('{lib,spec}/**/*') + %w(README.md mailgunner.gemspec)
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.add_development_dependency('rake', '>= 0.9.3')
         
     | 
| 
       12 
     | 
    
         
            -
              s.add_development_dependency('mocha', '~> 0. 
     | 
| 
      
 12 
     | 
    
         
            +
              s.add_development_dependency('mocha', '~> 0.13.2')
         
     | 
| 
      
 13 
     | 
    
         
            +
              s.add_development_dependency('faux', '~> 1.1.0')
         
     | 
| 
       13 
14 
     | 
    
         
             
              s.require_path = 'lib'
         
     | 
| 
       14 
15 
     | 
    
         
             
            end
         
     | 
    
        data/spec/mailgunner_spec.rb
    CHANGED
    
    | 
         @@ -1,6 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'minitest/autorun'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'mocha/setup'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'mailgunner'
         
     | 
| 
       3 
     | 
    
         
            -
            require ' 
     | 
| 
      
 4 
     | 
    
         
            +
            require 'faux'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'json'
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
7 
     | 
    
         
             
            class Net::HTTPGenericRequest
         
     | 
| 
       6 
8 
     | 
    
         
             
              def inspect
         
     | 
| 
         @@ -63,18 +65,6 @@ describe 'Mailgunner::Client' do 
     | 
|
| 
       63 
65 
     | 
    
         
             
                end
         
     | 
| 
       64 
66 
     | 
    
         
             
              end
         
     | 
| 
       65 
67 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
              describe 'json method' do
         
     | 
| 
       67 
     | 
    
         
            -
                it 'returns the value passed to the constructor' do
         
     | 
| 
       68 
     | 
    
         
            -
                  json = stub
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
                  Mailgunner::Client.new(json: json).json.must_equal(json)
         
     | 
| 
       71 
     | 
    
         
            -
                end
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                it 'defaults to the standard library json implementation' do
         
     | 
| 
       74 
     | 
    
         
            -
                  @client.json.must_equal(JSON)
         
     | 
| 
       75 
     | 
    
         
            -
                end
         
     | 
| 
       76 
     | 
    
         
            -
              end
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
68 
     | 
    
         
             
              describe 'send_message method' do
         
     | 
| 
       79 
69 
     | 
    
         
             
                it 'posts to the domain messages resource and returns a response object' do
         
     | 
| 
       80 
70 
     | 
    
         
             
                  expect(Net::HTTP::Post, "/v2/#@domain/messages")
         
     | 
| 
         @@ -348,7 +338,11 @@ describe 'Mailgunner::Client' do 
     | 
|
| 
       348 
338 
     | 
    
         
             
              end
         
     | 
| 
       349 
339 
     | 
    
         | 
| 
       350 
340 
     | 
    
         
             
              describe 'get_mailboxes method' do
         
     | 
| 
       351 
     | 
    
         
            -
                 
     | 
| 
      
 341 
     | 
    
         
            +
                before do
         
     | 
| 
      
 342 
     | 
    
         
            +
                  Kernel.stubs(:warn)
         
     | 
| 
      
 343 
     | 
    
         
            +
                end
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                it 'emits a deprecation warning and fetches the domain mailboxes resource and returns a response object' do
         
     | 
| 
       352 
346 
     | 
    
         
             
                  expect(Net::HTTP::Get, "/v2/#@domain/mailboxes")
         
     | 
| 
       353 
347 
     | 
    
         | 
| 
       354 
348 
     | 
    
         
             
                  @client.get_mailboxes.must_be_instance_of(Mailgunner::Response)
         
     | 
| 
         @@ -359,9 +353,21 @@ describe 'Mailgunner::Client' do 
     | 
|
| 
       359 
353 
     | 
    
         | 
| 
       360 
354 
     | 
    
         
             
                  @client.get_mailboxes(skip: 1, limit: 2)
         
     | 
| 
       361 
355 
     | 
    
         
             
                end
         
     | 
| 
      
 356 
     | 
    
         
            +
             
     | 
| 
      
 357 
     | 
    
         
            +
                it 'emits a deprecation warning' do
         
     | 
| 
      
 358 
     | 
    
         
            +
                  Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client#get_mailboxes is deprecated/))
         
     | 
| 
      
 359 
     | 
    
         
            +
             
     | 
| 
      
 360 
     | 
    
         
            +
                  @client.http.stubs(:request)
         
     | 
| 
      
 361 
     | 
    
         
            +
             
     | 
| 
      
 362 
     | 
    
         
            +
                  @client.get_mailboxes
         
     | 
| 
      
 363 
     | 
    
         
            +
                end
         
     | 
| 
       362 
364 
     | 
    
         
             
              end
         
     | 
| 
       363 
365 
     | 
    
         | 
| 
       364 
366 
     | 
    
         
             
              describe 'add_mailbox method' do
         
     | 
| 
      
 367 
     | 
    
         
            +
                before do
         
     | 
| 
      
 368 
     | 
    
         
            +
                  Kernel.stubs(:warn)
         
     | 
| 
      
 369 
     | 
    
         
            +
                end
         
     | 
| 
      
 370 
     | 
    
         
            +
             
     | 
| 
       365 
371 
     | 
    
         
             
                it 'posts to the domain mailboxes resource and returns a response object' do
         
     | 
| 
       366 
372 
     | 
    
         
             
                  expect(Net::HTTP::Post, "/v2/#@domain/mailboxes")
         
     | 
| 
       367 
373 
     | 
    
         | 
| 
         @@ -373,9 +379,21 @@ describe 'Mailgunner::Client' do 
     | 
|
| 
       373 
379 
     | 
    
         | 
| 
       374 
380 
     | 
    
         
             
                  @client.add_mailbox({mailbox: 'user'})
         
     | 
| 
       375 
381 
     | 
    
         
             
                end
         
     | 
| 
      
 382 
     | 
    
         
            +
             
     | 
| 
      
 383 
     | 
    
         
            +
                it 'emits a deprecation warning' do
         
     | 
| 
      
 384 
     | 
    
         
            +
                  Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client#add_mailbox is deprecated/))
         
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
                  @client.http.stubs(:request)
         
     | 
| 
      
 387 
     | 
    
         
            +
             
     | 
| 
      
 388 
     | 
    
         
            +
                  @client.add_mailbox({})
         
     | 
| 
      
 389 
     | 
    
         
            +
                end
         
     | 
| 
       376 
390 
     | 
    
         
             
              end
         
     | 
| 
       377 
391 
     | 
    
         | 
| 
       378 
392 
     | 
    
         
             
              describe 'update_mailbox method' do
         
     | 
| 
      
 393 
     | 
    
         
            +
                before do
         
     | 
| 
      
 394 
     | 
    
         
            +
                  Kernel.stubs(:warn)
         
     | 
| 
      
 395 
     | 
    
         
            +
                end
         
     | 
| 
      
 396 
     | 
    
         
            +
             
     | 
| 
       379 
397 
     | 
    
         
             
                it 'updates the mailbox resource and returns a response object' do
         
     | 
| 
       380 
398 
     | 
    
         
             
                  expect(Net::HTTP::Put, "/v2/#@domain/mailboxes/user")
         
     | 
| 
       381 
399 
     | 
    
         | 
| 
         @@ -387,14 +405,34 @@ describe 'Mailgunner::Client' do 
     | 
|
| 
       387 
405 
     | 
    
         | 
| 
       388 
406 
     | 
    
         
             
                  @client.update_mailbox('user', {password: 'secret'})
         
     | 
| 
       389 
407 
     | 
    
         
             
                end
         
     | 
| 
      
 408 
     | 
    
         
            +
             
     | 
| 
      
 409 
     | 
    
         
            +
                it 'emits a deprecation warning' do
         
     | 
| 
      
 410 
     | 
    
         
            +
                  Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client#update_mailbox is deprecated/))
         
     | 
| 
      
 411 
     | 
    
         
            +
             
     | 
| 
      
 412 
     | 
    
         
            +
                  @client.http.stubs(:request)
         
     | 
| 
      
 413 
     | 
    
         
            +
             
     | 
| 
      
 414 
     | 
    
         
            +
                  @client.update_mailbox('user', {})
         
     | 
| 
      
 415 
     | 
    
         
            +
                end
         
     | 
| 
       390 
416 
     | 
    
         
             
              end
         
     | 
| 
       391 
417 
     | 
    
         | 
| 
       392 
418 
     | 
    
         
             
              describe 'delete_mailbox method' do
         
     | 
| 
      
 419 
     | 
    
         
            +
                before do
         
     | 
| 
      
 420 
     | 
    
         
            +
                  Kernel.stubs(:warn)
         
     | 
| 
      
 421 
     | 
    
         
            +
                end
         
     | 
| 
      
 422 
     | 
    
         
            +
             
     | 
| 
       393 
423 
     | 
    
         
             
                it 'deletes the domain mailbox resource with the given address and returns a response object' do
         
     | 
| 
       394 
424 
     | 
    
         
             
                  expect(Net::HTTP::Delete, "/v2/#@domain/mailboxes/user")
         
     | 
| 
       395 
425 
     | 
    
         | 
| 
       396 
426 
     | 
    
         
             
                  @client.delete_mailbox('user').must_be_instance_of(Mailgunner::Response)
         
     | 
| 
       397 
427 
     | 
    
         
             
                end
         
     | 
| 
      
 428 
     | 
    
         
            +
             
     | 
| 
      
 429 
     | 
    
         
            +
                it 'emits a deprecation warning' do
         
     | 
| 
      
 430 
     | 
    
         
            +
                  Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client#delete_mailbox is deprecated/))
         
     | 
| 
      
 431 
     | 
    
         
            +
             
     | 
| 
      
 432 
     | 
    
         
            +
                  @client.http.stubs(:request)
         
     | 
| 
      
 433 
     | 
    
         
            +
             
     | 
| 
      
 434 
     | 
    
         
            +
                  @client.delete_mailbox('user')
         
     | 
| 
      
 435 
     | 
    
         
            +
                end
         
     | 
| 
       398 
436 
     | 
    
         
             
              end
         
     | 
| 
       399 
437 
     | 
    
         | 
| 
       400 
438 
     | 
    
         
             
              describe 'get_campaigns method' do
         
     | 
| 
         @@ -662,6 +700,41 @@ describe 'Mailgunner::Client' do 
     | 
|
| 
       662 
700 
     | 
    
         
             
                  @client.get_list_stats('developers@mailgun.net').must_be_instance_of(Mailgunner::Response)
         
     | 
| 
       663 
701 
     | 
    
         
             
                end
         
     | 
| 
       664 
702 
     | 
    
         
             
              end
         
     | 
| 
      
 703 
     | 
    
         
            +
             
     | 
| 
      
 704 
     | 
    
         
            +
              describe 'json method' do
         
     | 
| 
      
 705 
     | 
    
         
            +
                it 'emits a deprecation warning and returns the standard library json module' do
         
     | 
| 
      
 706 
     | 
    
         
            +
                  Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client#json is deprecated/))
         
     | 
| 
      
 707 
     | 
    
         
            +
             
     | 
| 
      
 708 
     | 
    
         
            +
                  Mailgunner::Client.new.json.must_equal(JSON)
         
     | 
| 
      
 709 
     | 
    
         
            +
                end
         
     | 
| 
      
 710 
     | 
    
         
            +
              end
         
     | 
| 
      
 711 
     | 
    
         
            +
             
     | 
| 
      
 712 
     | 
    
         
            +
              describe 'json equals method' do
         
     | 
| 
      
 713 
     | 
    
         
            +
                it 'emits a deprecation warning' do
         
     | 
| 
      
 714 
     | 
    
         
            +
                  Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client#json= is deprecated/))
         
     | 
| 
      
 715 
     | 
    
         
            +
             
     | 
| 
      
 716 
     | 
    
         
            +
                  Mailgunner::Client.new.json = nil
         
     | 
| 
      
 717 
     | 
    
         
            +
                end
         
     | 
| 
      
 718 
     | 
    
         
            +
              end
         
     | 
| 
      
 719 
     | 
    
         
            +
             
     | 
| 
      
 720 
     | 
    
         
            +
              describe 'when initialized with a different json implementation' do
         
     | 
| 
      
 721 
     | 
    
         
            +
                it 'emits a deprecation warning' do
         
     | 
| 
      
 722 
     | 
    
         
            +
                  Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client :json option is deprecated/))
         
     | 
| 
      
 723 
     | 
    
         
            +
             
         
     | 
| 
      
 724 
     | 
    
         
            +
                  Mailgunner::Client.new(domain: @domain, api_key: @api_key, json: stub)
         
     | 
| 
      
 725 
     | 
    
         
            +
                end
         
     | 
| 
      
 726 
     | 
    
         
            +
             
     | 
| 
      
 727 
     | 
    
         
            +
                describe 'json method' do
         
     | 
| 
      
 728 
     | 
    
         
            +
                  it 'emits a deprecation warning and returns the value passed to the constructor' do
         
     | 
| 
      
 729 
     | 
    
         
            +
                    json = stub
         
     | 
| 
      
 730 
     | 
    
         
            +
             
     | 
| 
      
 731 
     | 
    
         
            +
                    Kernel.expects(:warn).once
         
     | 
| 
      
 732 
     | 
    
         
            +
                    Kernel.expects(:warn).with(regexp_matches(/Mailgunner::Client#json is deprecated/))
         
     | 
| 
      
 733 
     | 
    
         
            +
             
     | 
| 
      
 734 
     | 
    
         
            +
                    Mailgunner::Client.new(json: json).json.must_equal(json)
         
     | 
| 
      
 735 
     | 
    
         
            +
                  end
         
     | 
| 
      
 736 
     | 
    
         
            +
                end
         
     | 
| 
      
 737 
     | 
    
         
            +
              end
         
     | 
| 
       665 
738 
     | 
    
         
             
            end
         
     | 
| 
       666 
739 
     | 
    
         | 
| 
       667 
740 
     | 
    
         
             
            describe 'Mailgunner::Response' do
         
     | 
| 
         @@ -744,9 +817,9 @@ end 
     | 
|
| 
       744 
817 
     | 
    
         | 
| 
       745 
818 
     | 
    
         
             
            describe 'Mailgunner::Response initialized with an alternative json implementation' do
         
     | 
| 
       746 
819 
     | 
    
         
             
              before do
         
     | 
| 
       747 
     | 
    
         
            -
                @json =  
     | 
| 
      
 820 
     | 
    
         
            +
                @json = faux(JSON)
         
     | 
| 
       748 
821 
     | 
    
         | 
| 
       749 
     | 
    
         
            -
                @http_response =  
     | 
| 
      
 822 
     | 
    
         
            +
                @http_response = stub
         
     | 
| 
       750 
823 
     | 
    
         | 
| 
       751 
824 
     | 
    
         
             
                @response = Mailgunner::Response.new(@http_response, :json => @json)
         
     | 
| 
       752 
825 
     | 
    
         
             
              end
         
     | 
| 
         @@ -755,7 +828,7 @@ describe 'Mailgunner::Response initialized with an alternative json implementati 
     | 
|
| 
       755 
828 
     | 
    
         
             
                it 'uses the alternative json implementation to parse the response body' do
         
     | 
| 
       756 
829 
     | 
    
         
             
                  @http_response.stubs(:body).returns(response_body = '{"foo":"bar"}')
         
     | 
| 
       757 
830 
     | 
    
         | 
| 
       758 
     | 
    
         
            -
                  @json.expects(: 
     | 
| 
      
 831 
     | 
    
         
            +
                  @json.expects(:parse).with(response_body)
         
     | 
| 
       759 
832 
     | 
    
         | 
| 
       760 
833 
     | 
    
         
             
                  @response.object
         
     | 
| 
       761 
834 
     | 
    
         
             
                end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mailgunner
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2013-01 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-04-01 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: rake
         
     | 
| 
         @@ -34,7 +34,7 @@ dependencies: 
     | 
|
| 
       34 
34 
     | 
    
         
             
                requirements:
         
     | 
| 
       35 
35 
     | 
    
         
             
                - - ~>
         
     | 
| 
       36 
36 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       37 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 37 
     | 
    
         
            +
                    version: 0.13.2
         
     | 
| 
       38 
38 
     | 
    
         
             
              type: :development
         
     | 
| 
       39 
39 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       40 
40 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -42,7 +42,23 @@ dependencies: 
     | 
|
| 
       42 
42 
     | 
    
         
             
                requirements:
         
     | 
| 
       43 
43 
     | 
    
         
             
                - - ~>
         
     | 
| 
       44 
44 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       45 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 45 
     | 
    
         
            +
                    version: 0.13.2
         
     | 
| 
      
 46 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 47 
     | 
    
         
            +
              name: faux
         
     | 
| 
      
 48 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 49 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 50 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 51 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 52 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 53 
     | 
    
         
            +
                    version: 1.1.0
         
     | 
| 
      
 54 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 55 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 56 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 58 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 60 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                    version: 1.1.0
         
     | 
| 
       46 
62 
     | 
    
         
             
            description: A Ruby wrapper for the Mailgun API
         
     | 
| 
       47 
63 
     | 
    
         
             
            email:
         
     | 
| 
       48 
64 
     | 
    
         
             
            - mail@timcraft.com
         
     | 
| 
         @@ -74,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       74 
90 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       75 
91 
     | 
    
         
             
            requirements: []
         
     | 
| 
       76 
92 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       77 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 93 
     | 
    
         
            +
            rubygems_version: 1.8.25
         
     | 
| 
       78 
94 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       79 
95 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       80 
96 
     | 
    
         
             
            summary: See description
         
     |