mailhandler 1.0.51 → 1.0.52

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: 7d42c93426c484996cc604a260820c1db617cf9d3e17d3441ac07038f31df9b0
4
- data.tar.gz: afb801fe33b1b317aeb036ec0a9722fccd0a2524ec8ce58333659552ae947ad3
3
+ metadata.gz: c7a197abe40976a389b5ff18bec02184905627083f5e4c75f1822c5040845e29
4
+ data.tar.gz: cf09e5646d042c4ff3837827db41b08c0905f8d3563143258b381bfa1121ad36
5
5
  SHA512:
6
- metadata.gz: 32410e9dfca936b1638ed6f4eff71800ce41f50193d8926dd2d9c5c62620856231c337a05acc9ca0299e5fad8cb1d442d0aae2bd9bba93bb18544c1db1d93f26
7
- data.tar.gz: 2f84617e07cf1ba803bb958c65b5ede2e46ded12bb8f514a219b0366bd8efb2f5051a1e38c324b31cb1b478014d45543f931fcc9abfc6432d0c1e7da8c0e64dd
6
+ metadata.gz: 47dc5ceb61e9f9239c98e4cacca9e840dfd0e659455ce5cee7e6a17f85f5a5f40e33d0b2da9428d32c456b77bd015fc9f12b4dac419c540dfc8f8281283b85f9
7
+ data.tar.gz: 3edc28dced7fe3dbba39964c157120fb1600a9c1662534beef6c98ebec54a1ccddd4f7ac08d2dd994f201e3214293ca86bbb74dffdc066aa7cbc13d145e77ea0
@@ -14,9 +14,32 @@ module MailHandler
14
14
 
15
15
  # sending accessor
16
16
  # @return [Object] - sender for sending emails
17
- def sender(type = :postmark_api)
17
+ #
18
+ # Create a new sender by using code block:
19
+ #
20
+ # MailHandler.sender(:smtp) do |dispatcher|
21
+ # dispatcher.address = address
22
+ # dispatcher.port = port
23
+ # dispatcher.domain = domain
24
+ # dispatcher.username = username
25
+ # dispatcher.password = password
26
+ # dispatcher.use_ssl = use_ssl
27
+ # end
28
+ #
29
+ # or by passing a settings hash:
30
+ #
31
+ # MailHandler.sender(:smtp, {address: 'example.com', port: 25})
32
+ #
33
+ # or by combining blocks and settings hash.
34
+ #
35
+ def sender(type = :postmark_api, settings = {})
18
36
  handler = Handler.new
19
37
  handler.init_sender(type)
38
+
39
+ settings.each do |setting_name, setting_value|
40
+ handler.sender.dispatcher.instance_variable_set("@#{setting_name}", setting_value)
41
+ end
42
+
20
43
  yield(handler.sender.dispatcher) if block_given?
21
44
 
22
45
  handler.sender
@@ -24,11 +47,38 @@ module MailHandler
24
47
 
25
48
  # receiving accessor
26
49
  # @return [Object] - receiver for searching emails
27
- def receiver(type = :folder, notifications = [])
50
+ #
51
+ # Create a new receiver by using code block:
52
+ #
53
+ # address = 'imap.example.com'
54
+ # port = 993
55
+ # username = 'john'
56
+ # password = 'xxxxxxxxxxxxxx'
57
+ # use_ssl = true
58
+ #
59
+ # email_receiver = MailHandler.receiver(:imap) do |checker|
60
+ # checker.address = address
61
+ # checker.port = port
62
+ # checker.username = username
63
+ # checker.password = password
64
+ # checker.use_ssl = use_ssl
65
+ # end
66
+ #
67
+ # or by passing a settings hash:
68
+ #
69
+ # email_receiver = MailHandler.receiver(:imap, {address: 'example.com', port: 993})
70
+ #
71
+ # or by combining blocks and settings hash.
72
+ #
73
+ def receiver(type = :folder, settings = {})
28
74
  handler = Handler.new
29
- handler.init_receiver(type, notifications)
30
- yield(handler.receiver.checker) if block_given?
75
+ handler.init_receiver(type, settings[:notifications])
76
+
77
+ settings.each do |setting_name, setting_value|
78
+ handler.receiver.checker.instance_variable_set("@#{setting_name}", setting_value)
79
+ end
31
80
 
81
+ yield(handler.receiver.checker) if block_given?
32
82
  handler.receiver
33
83
  end
34
84
 
@@ -53,9 +103,10 @@ module MailHandler
53
103
 
54
104
  def init_receiver(type = :folder, notifications = [])
55
105
  verify_type(type, CHECKER_TYPES)
56
- @receiver = MailHandler::Receiver.new(CHECKER_TYPES[type].new)
57
- add_receiving_notifications(@receiver, notifications)
58
- @receiver
106
+ receiver = MailHandler::Receiver.new(CHECKER_TYPES[type].new)
107
+
108
+ add_receiving_notifications(receiver, notifications)
109
+ @receiver = receiver
59
110
  end
60
111
 
61
112
  def handler(sender, receiver)
@@ -73,6 +124,7 @@ module MailHandler
73
124
  # @param [Receiving::Object] receiver
74
125
  # @param [Array<Receiving::Notification::Class>] notifications
75
126
  def add_receiving_notifications(receiver, notifications)
127
+ return if notifications.nil?
76
128
  return unless (notifications - NOTIFICATION_TYPES.keys).empty?
77
129
 
78
130
  notifications.each { |n| receiver.add_observer(NOTIFICATION_TYPES[n].new) }
@@ -11,8 +11,7 @@ module MailHandler
11
11
  :api_token,
12
12
  :use_ssl,
13
13
  :http_open_timeout,
14
- :http_read_timeout,
15
- :client
14
+ :http_read_timeout
16
15
 
17
16
  def initialize(api_token = nil)
18
17
  @type = :postmark_api
@@ -31,6 +30,10 @@ module MailHandler
31
30
  client.deliver_message(email)
32
31
  end
33
32
 
33
+ def client
34
+ init_client
35
+ end
36
+
34
37
  def init_client
35
38
  @client = setup_sending_client
36
39
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MailHandler
4
- VERSION = '1.0.51'
4
+ VERSION = '1.0.52'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailhandler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.51
4
+ version: 1.0.52
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Balos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-12 00:00:00.000000000 Z
11
+ date: 2020-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mail
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  - !ruby/object:Gem::Version
115
115
  version: 1.9.3
116
116
  requirements: []
117
- rubygems_version: 3.0.6
117
+ rubygems_version: 3.1.2
118
118
  signing_key:
119
119
  specification_version: 4
120
120
  summary: Postmark email receiving and sending handler.