mailcrate 0.0.1 → 0.0.2

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 +25 -25
  2. metadata +5 -5
data/lib/mailcrate.rb CHANGED
@@ -2,26 +2,27 @@ require 'socket'
2
2
 
3
3
  class Mailcrate
4
4
 
5
- attr_reader :mails
6
-
7
- def initialize(port)
8
- @port = port
9
- @mails = []
10
- end
5
+ attr_reader :mails
11
6
 
7
+ def initialize(port)
8
+ @port = port
9
+ @mails = []
10
+ end
12
11
 
13
- def start
14
- @service = TCPServer.new('localhost', @port )
15
- Thread.new { accept(@service) }
16
- end
12
+ def start(opts = {})
13
+ @service = opts[:service] || TCPServer.new('localhost', @port)
14
+ @thread = Thread.new { accept(@service) }
15
+ end
17
16
 
18
- def stop
19
- @service.close unless @service.nil? || @service.closed?
20
- end
17
+ def stop
18
+ @service.close unless @service.nil? || @service.closed?
19
+ @thread.kill
20
+ end
21
+
22
+ private
21
23
 
22
- def accept( service )
24
+ def accept(service)
23
25
  while session = service.accept
24
-
25
26
  class << session
26
27
  def get_line
27
28
  line = gets
@@ -31,15 +32,15 @@ class Mailcrate
31
32
  end
32
33
 
33
34
  begin
34
- serve( session )
35
+ serve(session)
35
36
  rescue Exception => e
36
37
  puts e.message
37
38
  end
38
39
  end
39
40
  end
40
41
 
41
- def serve( connection )
42
- connection.puts( "220 localhost mailcrate ready ESTMP" )
42
+ def serve(connection)
43
+ connection.puts("220 localhost mailcrate ready ESTMP")
43
44
  helo = connection.get_line
44
45
 
45
46
  if helo =~ /^EHLO\s+/
@@ -48,8 +49,7 @@ class Mailcrate
48
49
  end
49
50
 
50
51
  from = connection.get_line
51
- connection.puts( "250 ok" )
52
-
52
+ connection.puts("250 ok")
53
53
 
54
54
  to_list = []
55
55
 
@@ -79,10 +79,10 @@ class Mailcrate
79
79
  connection.close
80
80
 
81
81
  @mails << {
82
- :from => from.gsub(/MAIL FROM:\s*/, ''),
83
- :to_list => to_list.map { |to| to.gsub( /RCPT TO:\s*/, "" ) },
84
- :body => lines.join( "\n" )
85
- }
82
+ :from => from.gsub(/MAIL FROM:\s*/, ''),
83
+ :to_list => to_list.map { |to| to.gsub( /RCPT TO:\s*/, "" ) },
84
+ :body => lines.join( "\n" )
85
+ }
86
86
  end
87
87
 
88
- end
88
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailcrate
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Adam Scott
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-02-12 00:00:00 Z
18
+ date: 2014-09-25 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
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.
@@ -57,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - none
59
59
  rubyforge_project:
60
- rubygems_version: 1.8.10
60
+ rubygems_version: 1.8.21
61
61
  signing_key:
62
62
  specification_version: 3
63
63
  summary: A mock SMTP server that can be run and inspected from tests.