Module: FibberMailman

Defined in:
lib/fibber_mailman.rb,
lib/fibber_mailman/version.rb

Overview

Example of use:

raw_mails = [
  File.read( "/fixtures/mail1.raw_mail" ) ),
  File.read( "/fixtures/mail2.raw_mail" ) ),
]

FibberMailman.lie_to_me( raw_mails ) do
  <your code that uses the Net::POP3.start on any point>
end

Not any real POP call will be done.

The mock will simulate that the mails received was the fake raw_mails.

Constant Summary collapse

VERSION =
"0.0.11"

Class Method Summary collapse

Class Method Details

.lie_to_me(raw_mails) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/fibber_mailman.rb', line 37

def self.lie_to_me( raw_mails )
  @@raw_mails = raw_mails
  
  # mocking
  Net::POP3.class_eval do
    alias_method :orig_start, :start
    def start( *, &block )
      block.call( self )
    end
    
    alias_method :orig_mails, :mails
    def mails
      pop_mails = FibberMailman.raw_mails.map { |raw_mail| FibberPop.new( raw_mail ) }
      return pop_mails
    end
  end
  
  begin
    yield
  ensure
    
    # unmocking
    Net::POP3.class_eval do
      alias_method :start, :orig_start
      alias_method :mails, :orig_mails
    end
  end
end

.raw_mailsObject



33
34
35
# File 'lib/fibber_mailman.rb', line 33

def self.raw_mails
  @@raw_mails
end