mailcrate 0.0.2 → 0.0.3

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 (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
-