mailcrate 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/mailcrate.rb +9 -2
  2. metadata +22 -40
data/lib/mailcrate.rb CHANGED
@@ -2,7 +2,11 @@ require 'socket'
2
2
 
3
3
  class Mailcrate
4
4
 
5
- attr_reader :mails
5
+ def self.used_ports
6
+ @used_ports ||= []
7
+ end
8
+
9
+ attr_reader :mails, :port
6
10
 
7
11
  def initialize(port)
8
12
  @port = port
@@ -10,11 +14,14 @@ class Mailcrate
10
14
  end
11
15
 
12
16
  def start(opts = {})
17
+ raise Errno::EADDRINUSE if self.class.used_ports.include?(@port)
18
+ self.class.used_ports << @port
13
19
  @service = opts[:service] || TCPServer.new('localhost', @port)
14
20
  @thread = Thread.new { accept(@service) }
15
21
  end
16
22
 
17
23
  def stop
24
+ self.class.used_ports.delete(@port)
18
25
  @service.close unless @service.nil? || @service.closed?
19
26
  @thread.kill
20
27
  end
@@ -78,7 +85,7 @@ class Mailcrate
78
85
  connection.puts "221 bye"
79
86
  connection.close
80
87
 
81
- @mails << {
88
+ @mails << {
82
89
  :from => from.gsub(/MAIL FROM:\s*/, ''),
83
90
  :to_list => to_list.map { |to| to.gsub( /RCPT TO:\s*/, "" ) },
84
91
  :body => lines.join( "\n" )
metadata CHANGED
@@ -1,65 +1,47 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mailcrate
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Adam Scott
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2014-09-25 00:00:00 Z
12
+ date: 2014-09-30 00:00:00.000000000 Z
19
13
  dependencies: []
20
-
21
- description: A mock SMTP server that can be run and inspected from tests. The server runs in memory and received messages can be retrieved.
14
+ description: A mock SMTP server that can be run and inspected from tests. The server
15
+ runs in memory and received messages can be retrieved.
22
16
  email: adam.d.scott@gmail.com
23
17
  executables: []
24
-
25
18
  extensions: []
26
-
27
19
  extra_rdoc_files: []
28
-
29
- files:
20
+ files:
30
21
  - lib/mailcrate.rb
31
22
  homepage: https://github.com/adscott/mailcrate
32
- licenses: []
33
-
23
+ licenses:
24
+ - MIT
34
25
  post_install_message:
35
26
  rdoc_options: []
36
-
37
- require_paths:
27
+ require_paths:
38
28
  - lib
39
- required_ruby_version: !ruby/object:Gem::Requirement
29
+ required_ruby_version: !ruby/object:Gem::Requirement
40
30
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- required_rubygems_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
36
  none: false
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- hash: 3
54
- segments:
55
- - 0
56
- version: "0"
57
- requirements:
58
- - none
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
59
42
  rubyforge_project:
60
43
  rubygems_version: 1.8.21
61
44
  signing_key:
62
45
  specification_version: 3
63
46
  summary: A mock SMTP server that can be run and inspected from tests.
64
47
  test_files: []
65
-