Class: Webspicy::Tester::Fakesmtp

Inherits:
Object
  • Object
show all
Includes:
Support::World::Item
Defined in:
lib/webspicy/tester/fakesmtp.rb,
lib/webspicy/tester/fakesmtp/email.rb

Defined Under Namespace

Classes: Email

Constant Summary collapse

DEFAULT_OPTIONS =
{
  endpoint: "http://fakesmtp"
}

Instance Attribute Summary collapse

Attributes included from Support::World::Item

#config

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Fakesmtp

Returns a new instance of Fakesmtp.



10
11
12
# File 'lib/webspicy/tester/fakesmtp.rb', line 10

def initialize(options = {})
  @options = DEFAULT_OPTIONS.merge(options)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



13
14
15
# File 'lib/webspicy/tester/fakesmtp.rb', line 13

def options
  @options
end

Instance Method Details

#clear!Object



19
20
21
# File 'lib/webspicy/tester/fakesmtp.rb', line 19

def clear!
  res = HTTP.delete("#{endpoint}/emails")
end

#emailsObject



23
24
25
26
# File 'lib/webspicy/tester/fakesmtp.rb', line 23

def emails
  res = HTTP.get("#{endpoint}/emails")
  JSON.parse(res.body).map{|data| Email.new(data) }
end

#emails_countObject



28
29
30
# File 'lib/webspicy/tester/fakesmtp.rb', line 28

def emails_count
  emails.length
end

#endpointObject



15
16
17
# File 'lib/webspicy/tester/fakesmtp.rb', line 15

def endpoint
  options[:endpoint]
end

#last_emailObject



32
33
34
# File 'lib/webspicy/tester/fakesmtp.rb', line 32

def last_email
  emails.first
end