incoming 0.1.8 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 13d2a53b1d5027bf212a3a74e08b40207997d8c7
4
- data.tar.gz: d12a01b4a2c2a8d90881579196534dc550884742
2
+ SHA256:
3
+ metadata.gz: 8409603277a81970dc527c48ca47f77760c9144cb8669c5076ae35218157df7f
4
+ data.tar.gz: c91ca767fb8bd056aaf7c653fbcb1aa907038f95478dbb35773cccd3f7b8e511
5
5
  SHA512:
6
- metadata.gz: b68bc6f0758974533a972551df3df2d1f27810707f82adf340ea266b2acfba5f504a86b39c4fb8c1980622660eefc7d8f0d0722462dddedd55f1bf002a1e8719
7
- data.tar.gz: 3ffb9246ad28a0f6e2bb17fceed526d384ed6a2ca32a7eb99db1b496207b5bf690ee0ade115f60bf80a417ba68f407243782481bbd09354580b93a8dcae5f247
6
+ metadata.gz: d9da30c903889786191ae4eac39f106897de8da570721d84bfab38785bd2a9944225a22f815353653aae9a0b384f8d7963d63628a3e168fd3dac60914d917334
7
+ data.tar.gz: eda688777a0803b9047b0e1864e0d83a18724ab4c769ecc42a40d9fb2f258f8b50cbf551c5a3cdbcc1d2ee975d0826e06b1b45c94e384e238402f30331e383e3
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013, Joshua Wood and Honeybadger Industries LLC
1
+ Copyright (c) 2013-2019 Honeybadger Industries LLC
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person
4
4
  obtaining a copy of this software and associated documentation
data/README.md CHANGED
@@ -24,7 +24,7 @@ Brought to you by :zap: **Honeybadger.io**, painless [Rails exception tracking](
24
24
  1. Add Incoming! to your Gemfile and run `bundle install`:
25
25
 
26
26
  ```ruby
27
- gem 'incoming'
27
+ gem "incoming"
28
28
  ```
29
29
 
30
30
  2. Create a new class to receive emails (see examples below)
@@ -32,7 +32,7 @@ Brought to you by :zap: **Honeybadger.io**, painless [Rails exception tracking](
32
32
  3. Implement an HTTP endpoint to receive HTTP post hooks, and pass the
33
33
  request to your receiver. (see examples below)
34
34
 
35
- ## SendGrid example
35
+ ## SendGrid Example
36
36
 
37
37
  ```ruby
38
38
  class EmailReceiver < Incoming::Strategies::SendGrid
@@ -47,11 +47,11 @@ result = EmailReceiver.receive(req) # => Got message from whoever@wherever.com w
47
47
 
48
48
  [Sendgrid API reference](http://sendgrid.com/docs/API_Reference/Webhooks/parse.html)
49
49
 
50
- ## Mailgun example
50
+ ## Mailgun Example
51
51
 
52
52
  ```ruby
53
53
  class EmailReceiver < Incoming::Strategies::Mailgun
54
- setup :api_key => 'asdf'
54
+ setup api_key: "asdf"
55
55
 
56
56
  def receive(mail)
57
57
  %(Got message from #{mail.to.first} with subject "#{mail.subject}")
@@ -64,7 +64,7 @@ result = EmailReceiver.receive(req) # => Got message from whoever@wherever.com w
64
64
 
65
65
  [Mailgun API reference](http://documentation.mailgun.net/user_manual.html#receiving-messages)
66
66
 
67
- ## Postmark example
67
+ ## Postmark Example
68
68
 
69
69
  ```ruby
70
70
  class EmailReceiver < Incoming::Strategies::Postmark
@@ -79,7 +79,7 @@ result = EmailReceiver.receive(req) # => Got message from whoever@wherever.com w
79
79
 
80
80
  [Postmark API reference](http://developer.postmarkapp.com/developer-inbound.html)
81
81
 
82
- ## CloudMailin example
82
+ ## CloudMailin Example
83
83
 
84
84
  Use the Raw Format when setting up your address target.
85
85
 
@@ -96,7 +96,7 @@ result = EmailReceiver.receive(req) # => Got message from whoever@wherever.com w
96
96
 
97
97
  [CloudMailin API reference](http://docs.cloudmailin.com/http_post_formats/)
98
98
 
99
- ## Mandrill example
99
+ ## Mandrill Example
100
100
 
101
101
  Mandrill is capable of sending multiple events in a single webhook, so
102
102
  the Mandrill strategy works a bit differently than the others. Namely,
@@ -112,16 +112,16 @@ class EmailReceiver < Incoming::Strategies::Mandrill
112
112
  end
113
113
 
114
114
  req = Rack::Request.new(env)
115
- result = EmailReceiver.receive(req) # => ['Got message from whoever@wherever.com with subject "hello world"', '...']
115
+ result = EmailReceiver.receive(req) # => Got message from whoever@wherever.com with subject "hello world"
116
116
  ```
117
117
 
118
118
  [Mandrill API reference](http://help.mandrill.com/entries/22092308-What-is-the-format-of-inbound-email-webhooks-)
119
119
 
120
- ## Postfix example
120
+ ## Postfix Example
121
121
 
122
122
  ```ruby
123
123
  class EmailReceiver < Incoming::Strategies::HTTPPost
124
- setup :secret => '6d7e5337a0cd69f52c3fcf9f5af438b1'
124
+ setup secret: "6d7e5337a0cd69f52c3fcf9f5af438b1"
125
125
 
126
126
  def receive(mail)
127
127
  %(Got message from #{mail.to.first} with subject "#{mail.subject}")
@@ -139,11 +139,11 @@ result = EmailReceiver.receive(req) # => Got message from whoever@wherever.com w
139
139
  # /etc/mail/aliases
140
140
  http_post: "|http_post -s 6d7e5337a0cd69f52c3fcf9f5af438b1 http://www.example.com/emails"
141
141
  ```
142
- ## Qmail example:
142
+ ## Qmail Example:
143
143
 
144
144
  ```ruby
145
145
  class EmailReceiver < Incoming::Strategies::HTTPPost
146
- setup :secret => '6d7e5337a0cd69f52c3fcf9f5af438b1'
146
+ setup secret: "6d7e5337a0cd69f52c3fcf9f5af438b1"
147
147
 
148
148
  def receive(mail)
149
149
  %(Got message from #{mail.to.first} with subject "#{mail.subject}")
@@ -172,16 +172,16 @@ example.com:example
172
172
  ```
173
173
  Now mails to `whoever@example.com` will be posted to the corresponding URL above. To post all mails for `example.com`, just add the above line to `~example/.qmail-default`.
174
174
 
175
- ## Example Rails controller
175
+ ## Example Rails Controller
176
176
 
177
177
  ```ruby
178
178
  # app/controllers/emails_controller.rb
179
179
  class EmailsController < ActionController::Base
180
180
  def create
181
181
  if EmailReceiver.receive(request)
182
- render :json => { :status => 'ok' }
182
+ render json: { status: "ok" }
183
183
  else
184
- render :json => { :status => 'rejected' }, :status => 403
184
+ render json: { status: "rejected" }, status: 403
185
185
  end
186
186
  end
187
187
  end
@@ -190,27 +190,27 @@ end
190
190
  ```ruby
191
191
  # config/routes.rb
192
192
  Rails.application.routes.draw do
193
- post '/emails' => 'emails#create'
193
+ post "/emails" => "emails#create"
194
194
  end
195
195
  ```
196
196
 
197
197
  ```ruby
198
198
  # spec/controllers/emails_controller_spec.rb
199
- require 'spec_helper'
199
+ require "spec_helper"
200
200
 
201
- describe EmailsController, '#create' do
202
- it 'responds with success when request is valid' do
203
- EmailReceiver.should_receive(:receive).and_return(true)
201
+ describe EmailsController, "#create" do
202
+ it "responds with success when request is valid" do
203
+ allow(EmailReceiver).to receive(:receive).and_return(true)
204
204
  post :create
205
- response.should be_success
206
- response.body.should eq '{"status":"ok"}'
205
+ expect(response.success?).to eq(true)
206
+ expect(response.body).to eq(%({"status":"ok"}))
207
207
  end
208
208
 
209
- it 'responds with 403 when request is invalid' do
210
- EmailReceiver.should_receive(:receive).and_return(false)
209
+ it "responds with 403 when request is invalid" do
210
+ allow(EmailReceiver).to receive(:receive).and_return(false)
211
211
  post :create
212
- response.status.should eq 403
213
- response.body.should eq '{"status":"rejected"}'
212
+ expect(response.status).to eq(403)
213
+ expect(response.body).to eq(%({"status":"rejected"}))
214
214
  end
215
215
  end
216
216
  ```
@@ -230,5 +230,5 @@ end
230
230
 
231
231
  ## License
232
232
 
233
- Incoming! is Copyright 2013 © Joshua Wood and Honeybadger Industries LLC. It is free software, and
234
- may be redistributed under the terms specified in the MIT-LICENSE file.
233
+ Incoming! is free software, and may be redistributed under the terms specified
234
+ in the MIT-LICENSE file.
@@ -2,7 +2,7 @@ require 'mail'
2
2
  require 'incoming/strategy'
3
3
 
4
4
  module Incoming
5
- VERSION = '0.1.8'
5
+ VERSION = '0.2.0'
6
6
 
7
7
  module Strategies
8
8
  autoload :Mandrill, 'incoming/strategies/mandrill'
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require 'mail/utilities'
2
3
 
3
4
  module Incoming
4
5
  module Strategies
@@ -18,7 +19,7 @@ module Incoming
18
19
  header params['headers']
19
20
  header['Content-Transfer-Encoding'] = nil
20
21
 
21
- if encodings['text'].blank?
22
+ if Mail::Utilities.blank?(encodings['text'])
22
23
  body params['text']
23
24
  else
24
25
  body params['text'].force_encoding(encodings['text']).encode('UTF-8')
@@ -26,7 +27,7 @@ module Incoming
26
27
 
27
28
  html_part do
28
29
  content_type 'text/html; charset=UTF-8'
29
- if encodings['html'].blank?
30
+ if Mail::Utilities.blank?(encodings['html'])
30
31
  body params['html']
31
32
  else
32
33
  body params['html'].force_encoding(encodings['html']).encode('UTF-8')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: incoming
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Wood
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-14 00:00:00.000000000 Z
11
+ date: 2019-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-its
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Incoming! standardizes various mail parse apis, making it a snap to receive
70
84
  emails through HTTP post hooks.
71
85
  email:
@@ -105,8 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
119
  - !ruby/object:Gem::Version
106
120
  version: '0'
107
121
  requirements: []
108
- rubyforge_project:
109
- rubygems_version: 2.2.2
122
+ rubygems_version: 3.0.3
110
123
  signing_key:
111
124
  specification_version: 4
112
125
  summary: Incoming! helps you receive email in your Rack apps.