Class: MailHandler::Receiver

Inherits:
Object
  • Object
show all
Includes:
MailHandler::Receiving::Observer
Defined in:
lib/mailhandler/receiver.rb

Defined Under Namespace

Modules: DEFAULTS Classes: Search

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MailHandler::Receiving::Observer

#add_observer, #delete_observer, #init_observer, #notify_observers

Constructor Details

#initialize(checker) ⇒ Receiver

Returns a new instance of Receiver.



36
37
38
39
40
41
42
# File 'lib/mailhandler/receiver.rb', line 36

def initialize(checker)

  @checker = checker
  @max_search_duration = DEFAULTS::MAX_SEARCH_DURATION
  @search_frequency = DEFAULTS::SEARCH_FREQUENCY

end

Instance Attribute Details

#checkerObject

Returns the value of attribute checker.



12
13
14
# File 'lib/mailhandler/receiver.rb', line 12

def checker
  @checker
end

#max_search_durationObject

Returns the value of attribute max_search_duration.



12
13
14
# File 'lib/mailhandler/receiver.rb', line 12

def max_search_duration
  @max_search_duration
end

#searchObject

Returns the value of attribute search.



12
13
14
# File 'lib/mailhandler/receiver.rb', line 12

def search
  @search
end

#search_frequencyObject

Returns the value of attribute search_frequency.



12
13
14
# File 'lib/mailhandler/receiver.rb', line 12

def search_frequency
  @search_frequency
end

Instance Method Details

#find_email(options) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/mailhandler/receiver.rb', line 44

def find_email(options)

  init_search_details(options)
  checker.start

  until search_time_expired?

    received = checker.find(options)
    update_search_details
    notify_observers(search)
    break if received
    sleep search_frequency

  end

  notify_observers(search)
  checker.search_result

  ensure

    checker.stop

end