mailstro 0.0.2 → 0.0.3
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/Gemfile +4 -1
- data/Readme.md +1 -7
- data/lib/mailstro/configuration.rb +8 -0
- data/lib/mailstro/delivery.rb +19 -18
- data/lib/mailstro/response.rb +17 -0
- data/lib/mailstro/test.rb +8 -8
- data/lib/mailstro/version.rb +1 -1
- data/lib/mailstro.rb +4 -2
- data/{mailmask-ruby.gemspec → mailstro-ruby.gemspec} +1 -1
- data/spec/fixtures/postman.json +1 -0
- data/spec/integration/posting_a_delivery_spec.rb +22 -6
- data/spec/mailstro/configuration_spec.rb +8 -0
- data/spec/mailstro/delivery_spec.rb +12 -5
- data/spec/mailstro/response_spec.rb +27 -0
- data/spec/mailstro/test_spec.rb +7 -7
- data/spec/mailstro_spec.rb +8 -2
- data/spec/support/fixtures.rb +3 -0
- data/spec/support/webmock.rb +1 -0
- metadata +36 -22
- checksums.yaml +0 -7
- data/.env-sample +0 -4
- data/spec/fixtures/cassettes/posting_a_delivery/succesfully_submits_a_delivery_to_mailstro.yml +0 -54
- data/spec/support/vcr.rb +0 -9
data/Gemfile
CHANGED
data/Readme.md
CHANGED
@@ -33,15 +33,9 @@ TODO: Write a gem description
|
|
33
33
|
To send an email with the template name `welcome` use the following:
|
34
34
|
|
35
35
|
```ruby
|
36
|
-
Mailstro.deliver(:welcome,
|
36
|
+
Mailstro.deliver(:welcome, "test@example.com", :greeting => "Hi")
|
37
37
|
```
|
38
38
|
|
39
|
-
## Testing
|
40
|
-
|
41
|
-
Copy the `.env-sample` file, and rename it to `.env`. Here, put in your
|
42
|
-
Mailstro credentials. This should allow you to run the integration tests
|
43
|
-
against your account.
|
44
|
-
|
45
39
|
## Contributing
|
46
40
|
|
47
41
|
1. Fork it
|
@@ -1,4 +1,6 @@
|
|
1
1
|
module Mailstro
|
2
|
+
class ConfigurationError < StandardError; end
|
3
|
+
|
2
4
|
class Configuration
|
3
5
|
attr_accessor :api_key
|
4
6
|
attr_accessor :endpoint
|
@@ -10,5 +12,11 @@ module Mailstro
|
|
10
12
|
@endpoint = 'api.mailstroapp.com'
|
11
13
|
@api_version = 1
|
12
14
|
end
|
15
|
+
|
16
|
+
def validate!
|
17
|
+
if api_key.nil?
|
18
|
+
raise ConfigurationError, "api_key not provided"
|
19
|
+
end
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
data/lib/mailstro/delivery.rb
CHANGED
@@ -2,18 +2,17 @@ module Mailstro
|
|
2
2
|
class Delivery
|
3
3
|
require 'net/http'
|
4
4
|
require 'openssl'
|
5
|
-
require 'json'
|
6
5
|
|
7
|
-
attr_reader :template, :
|
6
|
+
attr_reader :template, :payload
|
8
7
|
|
9
|
-
def self.deliver(
|
10
|
-
new(
|
8
|
+
def self.deliver(template, recipient, payload)
|
9
|
+
new(template, recipient, payload).deliver
|
11
10
|
end
|
12
11
|
|
13
|
-
def initialize(template,
|
12
|
+
def initialize(template, recipient, payload)
|
14
13
|
@template = template
|
15
|
-
@recipient =
|
16
|
-
@payload =
|
14
|
+
@recipient = recipient
|
15
|
+
@payload = payload
|
17
16
|
end
|
18
17
|
|
19
18
|
def deliver
|
@@ -24,24 +23,26 @@ module Mailstro
|
|
24
23
|
request = Net::HTTP::Post.new(endpoint_uri.request_uri, { 'Content-Type' =>'application/json' })
|
25
24
|
request.body = JSON.generate(post_data)
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
# response.status
|
30
|
-
# response["header-here"] # All headers are lowercase
|
26
|
+
Response.new(http.request(request)).json_body
|
27
|
+
end
|
31
28
|
|
32
|
-
|
29
|
+
def recipient
|
30
|
+
if @recipient.is_a?(String)
|
31
|
+
{ :email => @recipient }
|
32
|
+
else
|
33
|
+
@recipient
|
34
|
+
end
|
33
35
|
end
|
34
36
|
|
35
37
|
private
|
36
38
|
|
37
39
|
def post_data
|
38
|
-
{
|
40
|
+
{
|
41
|
+
'template' => template,
|
39
42
|
'recipient' => recipient,
|
40
|
-
'
|
41
|
-
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
43
|
+
'payload' => payload,
|
44
|
+
'api_key' => Mailstro.configuration.api_key
|
45
|
+
}
|
45
46
|
end
|
46
47
|
|
47
48
|
def endpoint_uri
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Mailstro
|
2
|
+
class AuthorisationError < StandardError; end
|
3
|
+
|
4
|
+
class Response
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
def initialize(raw)
|
8
|
+
@raw = raw
|
9
|
+
end
|
10
|
+
|
11
|
+
def json_body
|
12
|
+
raise AuthorisationError.new("api_key not authorised") if @raw.code.to_i == 401
|
13
|
+
|
14
|
+
JSON.parse(@raw.body)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/mailstro/test.rb
CHANGED
@@ -12,30 +12,30 @@ module Mailstro
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.enable
|
15
|
-
def Mailstro.deliver(
|
16
|
-
Mailstro::Test.deliveries << Mailstro::Delivery.new(
|
15
|
+
def Mailstro.deliver(template, recipient, payload = {})
|
16
|
+
Mailstro::Test.deliveries << Mailstro::Delivery.new(template, recipient, payload)
|
17
17
|
true # insert response here
|
18
18
|
end
|
19
19
|
|
20
|
-
def Mailstro.has_delivered?(
|
21
|
-
Mailstro::Test.has_delivered?(
|
20
|
+
def Mailstro.has_delivered?(template)
|
21
|
+
Mailstro::Test.has_delivered?(template)
|
22
22
|
end
|
23
23
|
|
24
24
|
@@enabled = true
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.disable
|
28
|
-
def Mailstro.deliver(
|
29
|
-
Mailstro::Delivery.deliver(
|
28
|
+
def Mailstro.deliver(template, recipient, payload = {})
|
29
|
+
Mailstro::Delivery.deliver(template, recipient, payload)
|
30
30
|
end
|
31
31
|
|
32
32
|
@@enabled = false
|
33
33
|
end
|
34
34
|
|
35
|
-
def self.has_delivered?(
|
35
|
+
def self.has_delivered?(template)
|
36
36
|
templates = @@deliveries.map(&:template)
|
37
37
|
|
38
|
-
templates.include?(
|
38
|
+
templates.include?(template)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
data/lib/mailstro/version.rb
CHANGED
data/lib/mailstro.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "mailstro/version"
|
2
2
|
require "mailstro/configuration"
|
3
3
|
require "mailstro/delivery"
|
4
|
+
require "mailstro/response"
|
4
5
|
|
5
6
|
module Mailstro
|
6
7
|
class << self
|
@@ -10,9 +11,10 @@ module Mailstro
|
|
10
11
|
def self.configure
|
11
12
|
self.configuration ||= Configuration.new
|
12
13
|
yield(configuration)
|
14
|
+
configuration.validate!
|
13
15
|
end
|
14
16
|
|
15
|
-
def self.deliver(
|
16
|
-
Delivery.deliver(
|
17
|
+
def self.deliver(template, recipient, payload = {})
|
18
|
+
Delivery.deliver(template, recipient, payload)
|
17
19
|
end
|
18
20
|
end
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
+
spec.add_development_dependency "dotenv"
|
22
23
|
spec.add_development_dependency "rake"
|
23
24
|
spec.add_development_dependency "rspec"
|
24
|
-
spec.add_development_dependency "vcr"
|
25
25
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{ "ok": true }
|
@@ -7,15 +7,31 @@ describe 'posting a delivery', :integration do
|
|
7
7
|
|
8
8
|
before do
|
9
9
|
Mailstro.configure do |config|
|
10
|
-
config.
|
11
|
-
config.endpoint = ENV['MAILSTRO_ENDPOINT']
|
12
|
-
config.api_version = ENV['MAILSTRO_API_VERSION']
|
13
|
-
config.api_key = ENV['MAILSTRO_API_KEY']
|
10
|
+
config.api_key = 'lolapi'
|
14
11
|
end
|
15
12
|
end
|
16
13
|
|
17
|
-
|
18
|
-
|
14
|
+
let(:expected_body) {{
|
15
|
+
"api_key" => "lolapi",
|
16
|
+
"template" => "test",
|
17
|
+
"recipient" => { "email" => "test@example.com" },
|
18
|
+
"payload" => { "greeting" => "Gday!" }
|
19
|
+
}}
|
20
|
+
|
21
|
+
it "succesfully submits a delivery to mailstro" do
|
22
|
+
stub_request(:post, "https://api.mailstroapp.com/v1/postman").
|
23
|
+
with(:body => expected_body).to_return(:status => 200, :body => fixture("postman.json"))
|
24
|
+
|
25
|
+
response = Mailstro.deliver(template, recipient, payload)
|
19
26
|
response['ok'].should == true
|
20
27
|
end
|
28
|
+
|
29
|
+
it "raises an error if the api key is not authorized" do
|
30
|
+
stub_request(:post, "https://api.mailstroapp.com/v1/postman").
|
31
|
+
to_return(:status => 401)
|
32
|
+
|
33
|
+
expect do
|
34
|
+
Mailstro.deliver(template, recipient, payload)
|
35
|
+
end.to raise_error(Mailstro::AuthorisationError, "api_key not authorised")
|
36
|
+
end
|
21
37
|
end
|
@@ -6,4 +6,12 @@ describe Mailstro::Configuration do
|
|
6
6
|
it "has a default endpoint" do
|
7
7
|
configuration.endpoint.should =~ /mailstro/
|
8
8
|
end
|
9
|
+
|
10
|
+
describe "#validate!" do
|
11
|
+
it "raises an error if an api_key is nil" do
|
12
|
+
expect {
|
13
|
+
subject.validate!
|
14
|
+
}.to raise_error(Mailstro::ConfigurationError)
|
15
|
+
end
|
16
|
+
end
|
9
17
|
end
|
@@ -5,19 +5,19 @@ describe Mailstro::Delivery do
|
|
5
5
|
let(:recipient) { { :email => "foo@bar.com" } }
|
6
6
|
let(:payload) { { :data => "here" } }
|
7
7
|
|
8
|
-
describe '.
|
8
|
+
describe '.deliver' do
|
9
9
|
let(:delivery) { double }
|
10
10
|
|
11
|
-
it "creates an instance
|
12
|
-
Mailstro::Delivery.should_receive(:new).with(template,
|
11
|
+
it "creates an instance and delivers it" do
|
12
|
+
Mailstro::Delivery.should_receive(:new).with(template, recipient, payload).and_return(delivery)
|
13
13
|
delivery.should_receive(:deliver)
|
14
14
|
|
15
|
-
Mailstro::Delivery.deliver(template,
|
15
|
+
Mailstro::Delivery.deliver(template, recipient, payload)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "#delivery" do
|
20
|
-
let(:delivery) { Mailstro::Delivery.new(template,
|
20
|
+
let(:delivery) { Mailstro::Delivery.new(template, recipient, payload) }
|
21
21
|
let(:request) { double.as_null_object }
|
22
22
|
let(:response) { double(:body => '{ "status": "OK" }').as_null_object }
|
23
23
|
let(:http) { double(:request => response).as_null_object }
|
@@ -55,4 +55,11 @@ describe Mailstro::Delivery do
|
|
55
55
|
delivery.deliver['status'].should == 'OK'
|
56
56
|
end
|
57
57
|
end
|
58
|
+
|
59
|
+
describe "#recipient" do
|
60
|
+
it "handles short and long versions" do
|
61
|
+
Mailstro::Delivery.new(nil, 'a@a.com', nil).recipient.should == { :email => 'a@a.com' }
|
62
|
+
Mailstro::Delivery.new(nil, { :email => 'a@a.com' }, nil).recipient.should == { :email => 'a@a.com' }
|
63
|
+
end
|
64
|
+
end
|
58
65
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Mailstro::Response do
|
4
|
+
let(:http_response) { double(:code => http_status, :body => http_body) }
|
5
|
+
let(:http_status) { 200 }
|
6
|
+
let(:http_body) { '{ "status": "OK" }' }
|
7
|
+
|
8
|
+
subject(:response) { Mailstro::Response.new(http_response) }
|
9
|
+
|
10
|
+
describe "#json_body" do
|
11
|
+
context "when successful" do
|
12
|
+
it "returns the html body as JSON" do
|
13
|
+
response.json_body['status'].should == 'OK'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "when authentication fails" do
|
18
|
+
let(:http_status) { 401 }
|
19
|
+
|
20
|
+
it "raises an error to alert the user" do
|
21
|
+
expect {
|
22
|
+
response.json_body
|
23
|
+
}.to raise_error(Mailstro::AuthorisationError)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/spec/mailstro/test_spec.rb
CHANGED
@@ -12,13 +12,13 @@ describe Mailstro::Test do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "doesn't send deliveries when enabled" do
|
15
|
-
Mailstro::Delivery.should_not_receive(:deliver).with(:template_name, {})
|
15
|
+
Mailstro::Delivery.should_not_receive(:deliver).with(:template_name, 'a@a.com', {})
|
16
16
|
|
17
|
-
Mailstro.deliver(:template_name,
|
17
|
+
Mailstro.deliver(:template_name, 'a@a.com')
|
18
18
|
end
|
19
19
|
|
20
20
|
it "adds the delivery to the deliveries array" do
|
21
|
-
Mailstro.deliver(:template_name,
|
21
|
+
Mailstro.deliver(:template_name, 'a@a.com')
|
22
22
|
|
23
23
|
Mailstro::Test.deliveries.should_not be_empty
|
24
24
|
end
|
@@ -28,9 +28,9 @@ describe Mailstro::Test do
|
|
28
28
|
it 'restores the previous behaviour of .deliver' do
|
29
29
|
Mailstro::Test.enable
|
30
30
|
Mailstro::Test.disable
|
31
|
-
Mailstro::Delivery.should_receive(:deliver).with(:template_name, {})
|
31
|
+
Mailstro::Delivery.should_receive(:deliver).with(:template_name, 'a@a.com', {})
|
32
32
|
|
33
|
-
Mailstro.deliver(:template_name,
|
33
|
+
Mailstro.deliver(:template_name, 'a@a.com')
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -38,7 +38,7 @@ describe Mailstro::Test do
|
|
38
38
|
before do
|
39
39
|
Mailstro::Test.enable
|
40
40
|
|
41
|
-
Mailstro.deliver(:template_name,
|
41
|
+
Mailstro.deliver(:template_name, 'a@a.com')
|
42
42
|
end
|
43
43
|
|
44
44
|
after do
|
@@ -63,7 +63,7 @@ describe Mailstro::Test do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
it 'returns true if there was a delivery matching the template name give' do
|
66
|
-
Mailstro.deliver(:template_name,
|
66
|
+
Mailstro.deliver(:template_name, 'a@a.com')
|
67
67
|
|
68
68
|
Mailstro.has_delivered?(:template => :template_name)
|
69
69
|
end
|
data/spec/mailstro_spec.rb
CHANGED
@@ -1,9 +1,15 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mailstro do
|
4
|
+
|
5
|
+
before do
|
6
|
+
Mailstro.configuration = nil
|
7
|
+
end
|
8
|
+
|
4
9
|
describe ".configure" do
|
5
10
|
it "allows you to pass a block to configure Mailstro" do
|
6
11
|
Mailstro.configure do |config|
|
12
|
+
config.api_key = 'x'
|
7
13
|
config.endpoint = 'mailstro.dev'
|
8
14
|
end
|
9
15
|
|
@@ -17,9 +23,9 @@ describe Mailstro do
|
|
17
23
|
let(:payload) { { :data => "here" } }
|
18
24
|
|
19
25
|
it "creates a delivery object and delivers it" do
|
20
|
-
Mailstro::Delivery.should_receive(:deliver).with(template,
|
26
|
+
Mailstro::Delivery.should_receive(:deliver).with(template, recipient, payload)
|
21
27
|
|
22
|
-
Mailstro.deliver(template,
|
28
|
+
Mailstro.deliver(template, recipient, payload)
|
23
29
|
end
|
24
30
|
end
|
25
31
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'webmock/rspec'
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailstro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Keith Pitt
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-07-15 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,50 +22,57 @@ dependencies:
|
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '1.3'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
31
|
+
name: dotenv
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
47
|
+
name: rake
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- - '>='
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- - '>='
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
63
|
+
name: rspec
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- - '>='
|
67
|
+
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
61
69
|
version: '0'
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- - '>='
|
75
|
+
- - ! '>='
|
67
76
|
- !ruby/object:Gem::Version
|
68
77
|
version: '0'
|
69
78
|
description: Ruby notifier for mailstro.co
|
@@ -73,7 +82,6 @@ executables: []
|
|
73
82
|
extensions: []
|
74
83
|
extra_rdoc_files: []
|
75
84
|
files:
|
76
|
-
- .env-sample
|
77
85
|
- .gitignore
|
78
86
|
- .rspec
|
79
87
|
- Gemfile
|
@@ -83,50 +91,56 @@ files:
|
|
83
91
|
- lib/mailstro.rb
|
84
92
|
- lib/mailstro/configuration.rb
|
85
93
|
- lib/mailstro/delivery.rb
|
94
|
+
- lib/mailstro/response.rb
|
86
95
|
- lib/mailstro/rspec.rb
|
87
96
|
- lib/mailstro/test.rb
|
88
97
|
- lib/mailstro/version.rb
|
89
|
-
-
|
90
|
-
- spec/fixtures/
|
98
|
+
- mailstro-ruby.gemspec
|
99
|
+
- spec/fixtures/postman.json
|
91
100
|
- spec/integration/posting_a_delivery_spec.rb
|
92
101
|
- spec/mailstro/configuration_spec.rb
|
93
102
|
- spec/mailstro/delivery_spec.rb
|
103
|
+
- spec/mailstro/response_spec.rb
|
94
104
|
- spec/mailstro/test_spec.rb
|
95
105
|
- spec/mailstro/version_spec.rb
|
96
106
|
- spec/mailstro_spec.rb
|
97
107
|
- spec/spec_helper.rb
|
98
|
-
- spec/support/
|
108
|
+
- spec/support/fixtures.rb
|
109
|
+
- spec/support/webmock.rb
|
99
110
|
homepage: http://www.mailstro.co
|
100
111
|
licenses:
|
101
112
|
- MIT
|
102
|
-
metadata: {}
|
103
113
|
post_install_message:
|
104
114
|
rdoc_options: []
|
105
115
|
require_paths:
|
106
116
|
- lib
|
107
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
108
119
|
requirements:
|
109
|
-
- - '>='
|
120
|
+
- - ! '>='
|
110
121
|
- !ruby/object:Gem::Version
|
111
122
|
version: '0'
|
112
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
113
125
|
requirements:
|
114
|
-
- - '>='
|
126
|
+
- - ! '>='
|
115
127
|
- !ruby/object:Gem::Version
|
116
128
|
version: '0'
|
117
129
|
requirements: []
|
118
130
|
rubyforge_project:
|
119
|
-
rubygems_version:
|
131
|
+
rubygems_version: 1.8.23
|
120
132
|
signing_key:
|
121
|
-
specification_version:
|
133
|
+
specification_version: 3
|
122
134
|
summary: Ruby notifier for mailstro.co
|
123
135
|
test_files:
|
124
|
-
- spec/fixtures/
|
136
|
+
- spec/fixtures/postman.json
|
125
137
|
- spec/integration/posting_a_delivery_spec.rb
|
126
138
|
- spec/mailstro/configuration_spec.rb
|
127
139
|
- spec/mailstro/delivery_spec.rb
|
140
|
+
- spec/mailstro/response_spec.rb
|
128
141
|
- spec/mailstro/test_spec.rb
|
129
142
|
- spec/mailstro/version_spec.rb
|
130
143
|
- spec/mailstro_spec.rb
|
131
144
|
- spec/spec_helper.rb
|
132
|
-
- spec/support/
|
145
|
+
- spec/support/fixtures.rb
|
146
|
+
- spec/support/webmock.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: bf855e15283478602f514d022748a103f567ea4d
|
4
|
-
data.tar.gz: a9574d49338b69186a9d3944a2b2222fa58e4fd5
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 2a529d88fe60006764f3d8219b9c88b271190fab3edd704a6d501e80d3ded776ae58a1c84342c79710626f413ae6a90d619bf676eb046c81f9d72e0d88f4e72b
|
7
|
-
data.tar.gz: b48beeb0cd6a31fbd2bb913e325832db8235eb499a0ecf00c191b984b7154687244a855660cac1e0ceee2826b567f8b5d5c0c799366b27a27963047506f8327e
|
data/.env-sample
DELETED
data/spec/fixtures/cassettes/posting_a_delivery/succesfully_submits_a_delivery_to_mailstro.yml
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: post
|
5
|
-
uri: http://ENDPOINT/v1/postman
|
6
|
-
body:
|
7
|
-
encoding: UTF-8
|
8
|
-
string: '{"template":"test","recipient":{"email":"test@example.com"},"api_key":"API_KEY","payload":{"greeting":"Gday!"}}'
|
9
|
-
headers:
|
10
|
-
Content-Type:
|
11
|
-
- application/json
|
12
|
-
Accept-Encoding:
|
13
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
-
Accept:
|
15
|
-
- '*/*'
|
16
|
-
User-Agent:
|
17
|
-
- Ruby
|
18
|
-
response:
|
19
|
-
status:
|
20
|
-
code: 200
|
21
|
-
message: OK
|
22
|
-
headers:
|
23
|
-
X-Frame-Options:
|
24
|
-
- SAMEORIGIN
|
25
|
-
X-Xss-Protection:
|
26
|
-
- 1; mode=block
|
27
|
-
X-Content-Type-Options:
|
28
|
-
- nosniff
|
29
|
-
X-Ua-Compatible:
|
30
|
-
- chrome=1
|
31
|
-
X-Xhr-Current-Location:
|
32
|
-
- /v1/postman
|
33
|
-
Content-Type:
|
34
|
-
- application/json; charset=utf-8
|
35
|
-
Etag:
|
36
|
-
- '"82380d1e263b6093f3c7535690fcdd75"'
|
37
|
-
Cache-Control:
|
38
|
-
- max-age=0, private, must-revalidate
|
39
|
-
Set-Cookie:
|
40
|
-
- request_method=POST; path=/
|
41
|
-
X-Request-Id:
|
42
|
-
- 7c8249cb-b3d6-4108-8a97-dba45471019a
|
43
|
-
X-Runtime:
|
44
|
-
- '0.084302'
|
45
|
-
Vary:
|
46
|
-
- Accept-Encoding
|
47
|
-
Connection:
|
48
|
-
- close
|
49
|
-
body:
|
50
|
-
encoding: UTF-8
|
51
|
-
string: '{"ok":true}'
|
52
|
-
http_version:
|
53
|
-
recorded_at: Tue, 21 May 2013 10:17:29 GMT
|
54
|
-
recorded_with: VCR 2.5.0
|
data/spec/support/vcr.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
require 'vcr'
|
2
|
-
|
3
|
-
VCR.configure do |config|
|
4
|
-
config.cassette_library_dir = FIXTURES_PATH.join('cassettes')
|
5
|
-
config.hook_into :webmock
|
6
|
-
config.filter_sensitive_data('API_KEY') { ENV['MAILSTRO_API_KEY'] }
|
7
|
-
config.filter_sensitive_data('ENDPOINT') { ENV['MAILSTRO_ENDPOINT'] }
|
8
|
-
config.configure_rspec_metadata!
|
9
|
-
end
|