hermes_tan 0.1.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/hermes_tan.rb +57 -0
  3. metadata +72 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9fdbcb218c65004d6a416cb26c576583877fc3be
4
+ data.tar.gz: ab01ca2c0d4c071efa22b6f9ff13e701f3f86e0e
5
+ SHA512:
6
+ metadata.gz: 89a8116bb93531f091a3db421a7b8de764f95b0a4a0c090937ac622acfaa403838dca1fea3c55800440808bba109af643e901a3235b6d2373cdad82bfefd0cf8
7
+ data.tar.gz: 035f4a81ffbf0f78b750d8e71bc5d523e6212fa0ea6b01e7af1c4618a78893fca1fcb645079332315a6ba496d677b56e7a86e896a4d8c24605aff8931127c65a
data/lib/hermes_tan.rb ADDED
@@ -0,0 +1,57 @@
1
+ require 'gmail'
2
+
3
+ class NoCredentialsProvidedError < StandardError; end
4
+ class InvalidEmailError < StandardError; end
5
+
6
+ # The main Hermes driver
7
+ class HermesTan
8
+
9
+ # Say hi to the world!
10
+ #
11
+ # Example:
12
+ # >> HermesTan.new("email@gmail.com", "password").let_gods_know_about(['1@gmail.com'], 'subject', 'body')
13
+ # => <- "RCPT TO:<1@gmail.com>\r\n"
14
+ # -> "250 2.1.5 OK c77sm415106lfb.41 - gsmtp\r\n"
15
+ # <- "DATA\r\n"
16
+ # -> "354 Go ahead c77sm415106lfb.41 - gsmtp\r\n"
17
+ # writing message from String
18
+ # wrote 519 bytes
19
+ # -> "250 2.0.0 OK 1447852102 c77sm415106lfb.41 - gsmtp\r\n"
20
+ # <- "QUIT\r\n"
21
+ # -> "221 2.0.0 closing connection c77sm415106lfb.41 - gsmtp\r\n"
22
+
23
+ #
24
+ # #initialize Arguments:
25
+ # email: (String)
26
+ # password: (String)
27
+ #
28
+ # #let_gods_know_about Arguments:
29
+ # gods: Array of emails (Strings)
30
+ # subject: (String)
31
+ # body: (String)
32
+
33
+ attr_reader :email, :password
34
+
35
+ def initialize(email, password)
36
+ raise NoCredentialsProvidedError unless password && email
37
+ raise InvalidEmailError unless email =~ /\b[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}\z/
38
+
39
+ @email = email
40
+ @password = password
41
+ end
42
+
43
+ def let_gods_know_about(gods, subject, body)
44
+ gmail = Gmail.new(email, password)
45
+
46
+ gmail.deliver do
47
+ to gods
48
+ subject subject
49
+ text_part do
50
+ body body
51
+ end
52
+ end
53
+
54
+ gmail.logout
55
+ end
56
+
57
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hermes_tan
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Ostap Tan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby-gmail
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.3.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.3.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.2'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
41
+ description: A simple gem for sending multiple emails from gmail account.
42
+ email: otan256@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/hermes_tan.rb
48
+ homepage: http://rubygems.org/gems/hermes
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubyforge_project:
68
+ rubygems_version: 2.4.6
69
+ signing_key:
70
+ specification_version: 4
71
+ summary: Send emails with fun!
72
+ test_files: []