Class: Mail::TestRetriever
- Defined in:
- lib/mail/network/retriever_methods/test_retriever.rb
Instance Method Summary collapse
- #find(options = {}, &block) ⇒ Object
-
#initialize(values) ⇒ TestRetriever
constructor
A new instance of TestRetriever.
Methods inherited from Retriever
#all, #find_and_delete, #first, #last
Constructor Details
#initialize(values) ⇒ TestRetriever
Returns a new instance of TestRetriever.
8 9 10 |
# File 'lib/mail/network/retriever_methods/test_retriever.rb', line 8 def initialize(values) @@emails = [] end |
Instance Method Details
#find(options = {}, &block) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/mail/network/retriever_methods/test_retriever.rb', line 12 def find( = {}, &block) [:count] ||= :all [:order] ||= :asc [:what] ||= :first emails = @@emails.dup emails.reverse! if [:what] == :last emails = case count = [:count] when :all then emails when 1 then emails.first when Fixnum then emails[0, count] else raise 'Invalid count option value: ' + count.inspect end if [:what] == :last && [:order] == :asc || [:what] == :first && [:order] == :desc emails.reverse! end emails.each { |email| email.mark_for_delete = true } if [:delete_after_find] if block_given? emails.each { |email| yield email } else emails end.tap do |results| emails.each { |email| @@emails.delete(email) if email.is_marked_for_delete? } if [:delete_after_find] end end |