google-http-actionmailer 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5681fb59448881c9fd4872b3e63c5d0b23ab8f5c8f329c0558fd5860881456ec
4
- data.tar.gz: 94601ff306b9a1af4610b71c0566c1365a2061ed6c494674940c7d2dd0e16566
3
+ metadata.gz: bc118bab2e0798e2e0fa9ea780750b48840f1563f5f5adb3f58450511613510f
4
+ data.tar.gz: 11c6e65d3b700f0bcc58fcf5f5299feae2036c4e870fd8b77fa2e7bd2979f526
5
5
  SHA512:
6
- metadata.gz: 791f3bb2d5cd9e10b8d21b67618fdce58e7f11373cf33aa838f122296c09afd932445e8763259ea29a1360a88e715ace1a763971961b0723fbd83772a8e06264
7
- data.tar.gz: 76ed809027807736bacce6d0dd14c3e3bfe370123c5b48e45df9d64a04ae63246feef6f731a83f905dbbe248bbc806956e0bc598413db296beb88793aa49a9a0
6
+ metadata.gz: 072e4c2f49676361f553e4b0fbcc1f8648a4210537cd03a8e9943d055d6284c146682cfdf96d7ff4c3292492b345b690e3c0cfe1ea8fe33a26484560a057302e
7
+ data.tar.gz: '03685f26244524317ed588e5a0008053a6f91b4e97f606ebe55629a325ca1f0d3b70e112c1d06997db03beb6877c04806a5273acc37f1d0543164ed965a304b9'
data/README.md CHANGED
@@ -24,6 +24,7 @@ Set up your `authorization` as described in the [Google API Client](https://gith
24
24
 
25
25
  ```ruby
26
26
  config.action_mailer.delivery_method = :google_http_actionmailer
27
+
27
28
  config.action_mailer.google_http_actionmailer_settings = {
28
29
  authorization: ...,
29
30
  client_options: {
@@ -37,10 +38,24 @@ config.action_mailer.google_http_actionmailer_settings = {
37
38
  message_options: {
38
39
  fields: ...,
39
40
  content_type: ...,
41
+ },
42
+ delivery_options: {
43
+ before_send: ...,
44
+ after_send: ...,
40
45
  }
41
46
  }
42
47
  ```
43
48
 
49
+ ### Options
50
+
51
+ | option | details |
52
+ | ------ | ------- |
53
+ | authorization | This is the authorization, it could be a access token, etc as described in the [Google API Client](https://github.com/google/google-api-ruby-client/#authorization) |
54
+ | client_options | General client options as described in the [Google API Client options code](https://github.com/googleapis/google-api-ruby-client/blob/0.26.0/lib/google/apis/options.rb#L38). |
55
+ | request_options | General request options as described in the [Google API Client options code](https://github.com/googleapis/google-api-ruby-client/blob/0.26.0/lib/google/apis/options.rb#L62). |
56
+ | message_options | [Specific options](https://github.com/googleapis/google-api-ruby-client/blob/0.26.0/generated/google/apis/gmail_v1/service.rb#L1075) for that message such as fields, content_type, upload_source and quota_user. |
57
+ | delivery_options | This currently contains hooks for before the message is sent and after the message is sent. |
58
+
44
59
  For client and request options, you can look [here](https://github.com/google/google-api-ruby-client/blob/master/lib/google/apis/options.rb). And for message options, you can look at the `send_user_message` method [here](https://github.com/google/google-api-ruby-client/blob/master/generated/google/apis/gmail_v1/service.rb#L1150).
45
60
 
46
61
  For dynamic setting of delivery method (this may be required given the access tokens usually expire):
@@ -54,6 +69,32 @@ mail.delivery_method(
54
69
 
55
70
  Normal ActionMailer usage will now transparently be sent using Google's HTTPS API.
56
71
 
72
+ To use the delivery options pass a proc that takes two parameters mail (the object created by ActionMailer) and message (the object created by the Gmail API).
73
+
74
+ ```ruby
75
+ GoogleHttpActionmailer::DeliveryMethod, {
76
+ authorization: access_token,
77
+ client_options: {
78
+ application_name: ...,
79
+ application_version: ...,
80
+ },
81
+ delivery_options: {
82
+ after_send: ->(mail, message) {
83
+ StorePostSendDetails.call(user: self, mail: mail, message: message)
84
+ },
85
+ before_send: ->(mail, message) {
86
+ StorePreSendDetails.call(user: self, mail: mail, message: message)
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ If you want to set the threadId to your outgoing mail, just add the header 'Thread-ID' with the appropriate value.
93
+
94
+ ```ruby
95
+ mail to: email, subject: subject, "Thread-ID": thread_id
96
+ ```
97
+
57
98
  ## Development
58
99
 
59
100
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -34,7 +34,7 @@ module GoogleHttpActionmailer
34
34
  user_id = message_options[:user_id] || 'me'
35
35
  message = Google::Apis::GmailV1::Message.new(
36
36
  raw: mail.to_s,
37
- thread_id: mail['Thread-ID']
37
+ thread_id: mail['Thread-ID'].to_s
38
38
  )
39
39
 
40
40
  before_send = delivery_options[:before_send]
@@ -1,3 +1,3 @@
1
1
  module GoogleHttpActionmailer
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-http-actionmailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kartik Luke Singh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-14 00:00:00.000000000 Z
11
+ date: 2019-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mail