simple_postmark 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,8 @@
1
1
  require 'active_support/core_ext/object/blank'
2
2
  require 'active_support/inflector/methods'
3
+ require 'httparty'
3
4
  require 'json'
4
5
  require 'mail'
5
- require 'typhoeus'
6
6
 
7
7
  module SimplePostmark
8
8
  require 'simple_postmark/mail_ext/message'
@@ -1,20 +1,17 @@
1
1
  module Mail
2
2
  class SimplePostmark
3
+ include HTTParty
4
+
3
5
  def initialize(values)
4
6
  self.settings = { api_key: '********-****-****-****-************' }.merge!(values)
5
7
  end
6
8
 
7
9
  attr_accessor :settings
10
+ base_uri 'http://api.postmarkapp.com'
11
+ headers 'Accept' => 'application/json', 'ContentType' => 'application/json'
8
12
 
9
13
  def deliver!(mail)
10
- headers = {
11
- 'Accept' => 'application/json',
12
- 'ContentType' => 'application/json',
13
- 'X-Postmark-Server-Token' => settings[:api_key].to_s
14
- }
15
- body = mail.to_postmark.to_json
16
-
17
- Typhoeus::Request.post('http://api.postmarkapp.com/email', headers: headers, body: body)
14
+ self.class.post('/email', headers: self.class.headers.merge('X-Postmark-Server-Token' => settings[:api_key].to_s), body: mail.to_postmark.to_json)
18
15
  end
19
16
  end
20
17
  end
@@ -1,5 +1,9 @@
1
1
  module Mail
2
2
  class Message
3
+ def html_body
4
+ html_part.present? ? html_part.to_postmark['Content'] : content_type && content_type.include?('text/html') ? body : nil
5
+ end
6
+
3
7
  def tag(val = nil)
4
8
  default(:tag, val)
5
9
  end
@@ -7,24 +11,19 @@ module Mail
7
11
  def tag=(val)
8
12
  header[:tag] = val
9
13
  end
14
+
15
+ def text_body
16
+ text_part.present? ? text_part.to_postmark['Content'] : body
17
+ end
10
18
 
11
19
  def to_postmark
12
20
  %w[attachments bcc cc from html_body reply_to subject tag text_body to].each.with_object({}) do |key, hash|
13
- hash[key.camelcase] = case (value = send(key).presence or next)
21
+ hash[key.camelcase] = case (value = public_send(key).presence or next)
14
22
  when AttachmentsList then value.map(&:to_postmark)
15
23
  when Array then value.join(', ')
16
24
  else value.to_s
17
25
  end
18
26
  end
19
27
  end
20
-
21
- private
22
- def html_body
23
- html_part.present? ? html_part.to_postmark['Content'] : content_type && content_type.include?('text/html') ? body : nil
24
- end
25
-
26
- def text_body
27
- text_part.present? ? text_part.to_postmark['Content'] : body
28
- end
29
28
  end
30
29
  end
@@ -1,3 +1,3 @@
1
1
  module SimplePostmark
2
- VERSION = '0.2'
2
+ VERSION = '0.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_postmark
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-20 00:00:00.000000000Z
12
+ date: 2011-09-21 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70262074977180 !ruby/object:Gem::Requirement
16
+ requirement: &70317368438940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70262074977180
24
+ version_requirements: *70317368438940
25
25
  - !ruby/object:Gem::Dependency
26
- name: json
27
- requirement: &70262074976680 !ruby/object:Gem::Requirement
26
+ name: httparty
27
+ requirement: &70317368438500 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70262074976680
35
+ version_requirements: *70317368438500
36
36
  - !ruby/object:Gem::Dependency
37
- name: mail
38
- requirement: &70262074976060 !ruby/object:Gem::Requirement
37
+ name: json
38
+ requirement: &70317368437880 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70262074976060
46
+ version_requirements: *70317368437880
47
47
  - !ruby/object:Gem::Dependency
48
- name: typhoeus
49
- requirement: &70262074975540 !ruby/object:Gem::Requirement
48
+ name: mail
49
+ requirement: &70317368437380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70262074975540
57
+ version_requirements: *70317368437380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: growl
60
- requirement: &70262074974980 !ruby/object:Gem::Requirement
60
+ requirement: &70317368436860 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70262074974980
68
+ version_requirements: *70317368436860
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: guard
71
- requirement: &70262074974380 !ruby/object:Gem::Requirement
71
+ requirement: &70317368436280 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70262074974380
79
+ version_requirements: *70317368436280
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: guard-bundler
82
- requirement: &70262074973660 !ruby/object:Gem::Requirement
82
+ requirement: &70317368435740 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70262074973660
90
+ version_requirements: *70317368435740
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: guard-minitest
93
- requirement: &70262074973160 !ruby/object:Gem::Requirement
93
+ requirement: &70317368435320 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70262074973160
101
+ version_requirements: *70317368435320
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: minitest
104
- requirement: &70262074972740 !ruby/object:Gem::Requirement
104
+ requirement: &70317368434860 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70262074972740
112
+ version_requirements: *70317368434860
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: webmock
115
- requirement: &70262074972140 !ruby/object:Gem::Requirement
115
+ requirement: &70317368434380 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70262074972140
123
+ version_requirements: *70317368434380
124
124
  description: SimplePostmark makes it easy to send mails via Postmark™ using Rails
125
125
  3's ActionMailer.
126
126
  email: uher.mario@gmail.com