mayaml 2.0.1 → 3.0.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +8 -2
- data/lib/mayaml.rb +3 -0
- data/lib/mayaml/mail_account.rb +3 -1
- data/lib/mayaml/mail_account/builder.rb +15 -0
- data/lib/mayaml/mail_account/error.rb +6 -0
- data/lib/mayaml/mail_account/required_attributes_validator.rb +52 -6
- data/lib/mayaml/mail_account/smtp_protocol_validator.rb +40 -0
- data/lib/mayaml/mail_account/type_validator.rb +1 -1
- data/lib/mayaml/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fc2e662cee19930ae8a3802e1d42874f3ce5925
|
4
|
+
data.tar.gz: b7b2c54f4d44cc32270749c0d758ad47fba6fa45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79419e0e20c57900f1e9f62bd66de0af817d9d541ee15f40de0dafe4db1cdab090cb6821a2b18c98527ba3329f068b9985a7399a4fa85949bcc14c8f0d848126
|
7
|
+
data.tar.gz: d6fd36d5ac090d1f691cecc077cf1eee437a25d9e1277f06af12f36cf91341ac47a9d2b0dc16730edfb1df88fe1b16c4ea1862ae3c8e04d2007b9ef7bafa8ed4
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -43,17 +43,23 @@ Mayaml.accounts_from_file(yaml_path).each { |account| ... }
|
|
43
43
|
pass: sercet_password
|
44
44
|
mailboxes:
|
45
45
|
- INBOX
|
46
|
+
smtp_protocol: smtps
|
47
|
+
smtp_port: 587
|
48
|
+
smtp_authenticator: login
|
46
49
|
```
|
47
50
|
|
48
51
|
#### Required attributes
|
49
52
|
|
50
53
|
* `name`
|
51
|
-
* `
|
54
|
+
* `realname`
|
55
|
+
* `type` [imap | imapssl | pop3 | pop3ssl]
|
52
56
|
* `server`
|
53
57
|
* `port`
|
54
58
|
* `user`
|
55
59
|
* `pass`
|
56
|
-
* `
|
60
|
+
* `smtp_protocol` [smpt | smtps]
|
61
|
+
* `smtp_port`
|
62
|
+
* `smtp_authenticator`
|
57
63
|
|
58
64
|
#### Default attributes
|
59
65
|
|
data/lib/mayaml.rb
CHANGED
@@ -40,6 +40,9 @@ module Mayaml
|
|
40
40
|
builder.user raw_account.fetch("user")
|
41
41
|
builder.pass raw_account.fetch("pass")
|
42
42
|
builder.mailboxes raw_account.fetch("mailboxes", [])
|
43
|
+
builder.smtp_protocol raw_account.fetch("smtp_protocol")
|
44
|
+
builder.smtp_port raw_account.fetch("smtp_port")
|
45
|
+
builder.smtp_authenticator raw_account.fetch("smtp_authenticator")
|
43
46
|
end
|
44
47
|
end
|
45
48
|
end
|
data/lib/mayaml/mail_account.rb
CHANGED
@@ -19,7 +19,8 @@
|
|
19
19
|
|
20
20
|
module Mayaml
|
21
21
|
class MailAccount
|
22
|
-
attr_accessor :name, :default, :realname, :type, :server, :port, :user, :pass,
|
22
|
+
attr_accessor :name, :default, :realname, :type, :server, :port, :user, :pass, \
|
23
|
+
:mailboxes, :smtp_protocol, :smtp_port, :smtp_authenticator
|
23
24
|
|
24
25
|
def initialize
|
25
26
|
set_default_flag
|
@@ -39,6 +40,7 @@ module Mayaml
|
|
39
40
|
<<-DESC
|
40
41
|
Account#{default_mark}: #{@name}<#{@realname}> | user: #{@user}:#{@pass}
|
41
42
|
#{@type} - #{@server}:#{@port} [#{@mailboxes.join(",")}]
|
43
|
+
#{@smtp_protocol} - #{@server}:#{@smtp_port} [auth: #{@smtp_authenticator}]
|
42
44
|
DESC
|
43
45
|
end
|
44
46
|
end
|
@@ -23,6 +23,7 @@ require "mayaml/mail_account/type_validator"
|
|
23
23
|
require "mayaml/mail_account/port_validator"
|
24
24
|
require "mayaml/mail_account/mailboxes_validator"
|
25
25
|
require "mayaml/mail_account/default_flag_validator"
|
26
|
+
require "mayaml/mail_account/smtp_protocol_validator"
|
26
27
|
|
27
28
|
module Mayaml
|
28
29
|
class MailAccount
|
@@ -85,6 +86,20 @@ module Mayaml
|
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
89
|
+
def smtp_protocol(str)
|
90
|
+
valid_attribute SmtpProtocolValidator, WrongAccountSmtpProtocol, str
|
91
|
+
@account.smtp_protocol = str.to_sym
|
92
|
+
end
|
93
|
+
|
94
|
+
def smtp_port(nr)
|
95
|
+
valid_attribute PortValidator, WrongAccountSmtpPort, nr
|
96
|
+
@account.smtp_port = nr.to_i
|
97
|
+
end
|
98
|
+
|
99
|
+
def smtp_authenticator(str)
|
100
|
+
@account.smtp_authenticator = str
|
101
|
+
end
|
102
|
+
|
88
103
|
def account
|
89
104
|
obj = valid_account
|
90
105
|
@account = ::Mayaml::MailAccount.new
|
@@ -24,17 +24,63 @@ module Mayaml
|
|
24
24
|
|
25
25
|
def initialize(mail_account)
|
26
26
|
@errors = []
|
27
|
-
@
|
28
|
-
|
29
|
-
@errors << "Missing type attribute." if mail_account.type.nil?
|
30
|
-
@errors << "Missing server attribute." if mail_account.server.nil?
|
31
|
-
@errors << "Missing user attribute." if mail_account.user.nil?
|
32
|
-
@errors << "Missing pass attribute." if mail_account.pass.nil?
|
27
|
+
@mail_account = mail_account
|
28
|
+
check_mail_account_attrs
|
33
29
|
end
|
34
30
|
|
35
31
|
def valid?
|
36
32
|
@errors.empty?
|
37
33
|
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def check_mail_account_attrs
|
38
|
+
check_missing_name
|
39
|
+
check_missing_realname
|
40
|
+
check_missing_type
|
41
|
+
check_missing_server
|
42
|
+
check_missing_user
|
43
|
+
check_missing_pass
|
44
|
+
check_missing_smtp_protocol
|
45
|
+
check_missing_smtp_port
|
46
|
+
check_missing_smtp_authenticator
|
47
|
+
end
|
48
|
+
|
49
|
+
def check_missing_name
|
50
|
+
@errors << "Missing name attribute." if @mail_account.name.nil?
|
51
|
+
end
|
52
|
+
|
53
|
+
def check_missing_realname
|
54
|
+
@errors << "Missing realname attribute." if @mail_account.realname.nil?
|
55
|
+
end
|
56
|
+
|
57
|
+
def check_missing_type
|
58
|
+
@errors << "Missing type attribute." if @mail_account.type.nil?
|
59
|
+
end
|
60
|
+
|
61
|
+
def check_missing_server
|
62
|
+
@errors << "Missing server attribute." if @mail_account.server.nil?
|
63
|
+
end
|
64
|
+
|
65
|
+
def check_missing_user
|
66
|
+
@errors << "Missing user attribute." if @mail_account.user.nil?
|
67
|
+
end
|
68
|
+
|
69
|
+
def check_missing_pass
|
70
|
+
@errors << "Missing pass attribute." if @mail_account.pass.nil?
|
71
|
+
end
|
72
|
+
|
73
|
+
def check_missing_smtp_protocol
|
74
|
+
@errors << "Missing smtp_protocol attribute." if @mail_account.smtp_protocol.nil?
|
75
|
+
end
|
76
|
+
|
77
|
+
def check_missing_smtp_port
|
78
|
+
@errors << "Missing smtp_port attribute." if @mail_account.smtp_port.nil?
|
79
|
+
end
|
80
|
+
|
81
|
+
def check_missing_smtp_authenticator
|
82
|
+
@errors << "Missing smtp_authenticator attribute." if @mail_account.smtp_authenticator.nil?
|
83
|
+
end
|
38
84
|
end
|
39
85
|
end
|
40
86
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Copyright (C) 2016 Szymon Kopciewski
|
4
|
+
#
|
5
|
+
# This file is part of Mayaml.
|
6
|
+
#
|
7
|
+
# This program is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
module Mayaml
|
21
|
+
class MailAccount
|
22
|
+
class SmtpProtocolValidator
|
23
|
+
attr_reader :errors
|
24
|
+
VALID_TYPES = [:smtp, :smtps].freeze
|
25
|
+
|
26
|
+
def initialize(type)
|
27
|
+
@errors = []
|
28
|
+
type = type.to_sym if type.respond_to? :to_sym
|
29
|
+
unless VALID_TYPES.include?(type)
|
30
|
+
types = VALID_TYPES.join(", ")
|
31
|
+
@errors << "Mail account smtp_protocol is invalid. Allowed types: #{types}."
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def valid?
|
36
|
+
@errors.empty?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/mayaml/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mayaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Szymon Kopciewski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -102,6 +102,7 @@ files:
|
|
102
102
|
- lib/mayaml/mail_account/mailboxes_validator.rb
|
103
103
|
- lib/mayaml/mail_account/port_validator.rb
|
104
104
|
- lib/mayaml/mail_account/required_attributes_validator.rb
|
105
|
+
- lib/mayaml/mail_account/smtp_protocol_validator.rb
|
105
106
|
- lib/mayaml/mail_account/type_validator.rb
|
106
107
|
- lib/mayaml/parser.rb
|
107
108
|
- lib/mayaml/version.rb
|