Class: MailProvider::Checker
- Inherits:
-
Object
- Object
- MailProvider::Checker
- Defined in:
- lib/mail_provider/checker.rb
Instance Method Summary collapse
- #check(str, summarize: false) ⇒ Object
- #find(str) ⇒ Object
-
#initialize(path = nil, directory = nil) ⇒ Checker
constructor
A new instance of Checker.
- #map(m, *a, &b) ⇒ Object
- #max_entries ⇒ Object
- #method_missing(m, *a, &b) ⇒ Object
- #respond_to_missing?(m, *a) ⇒ Boolean
- #setup(refresh: false) ⇒ Object
Constructor Details
#initialize(path = nil, directory = nil) ⇒ Checker
Returns a new instance of Checker.
5 6 7 |
# File 'lib/mail_provider/checker.rb', line 5 def initialize(path = nil, directory = nil) @manager = SourceManager.new path, directory end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *a, &b) ⇒ Object
47 48 49 50 51 |
# File 'lib/mail_provider/checker.rb', line 47 def method_missing(m, *a, &b) return map(m, *a, &b) if @free.respond_to?(m, true) super end |
Instance Method Details
#check(str, summarize: false) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/mail_provider/checker.rb', line 25 def check(str, summarize: false) max_entries given, domains, data = fetch_data_for(str, summarize: summarize) build_response given, domains, summarize: summarize add_success data, :entry, given.name add_success data, :subdomain, data.to_a[0][0], given.domain if data.any? add_success data, :domain, given.domain add_score_to_response @response end |
#find(str) ⇒ Object
39 40 41 |
# File 'lib/mail_provider/checker.rb', line 39 def find(str) map(:get, str).map { |k, v| [k, v ? v[1] : 0] }.to_h end |
#map(m, *a, &b) ⇒ Object
43 44 45 |
# File 'lib/mail_provider/checker.rb', line 43 def map(m, *a, &b) { free: @free.send(m, *a, &b), disposable: @disposable.send(m, *a, &b) } end |
#max_entries ⇒ Object
19 20 21 22 23 |
# File 'lib/mail_provider/checker.rb', line 19 def max_entries @max_entries ||= MailProvider::Parser::FAMOUS_CHECKS.map do |type, checks| [type, checks.map { |check| find(check)[type] }.max] end.to_h end |
#respond_to_missing?(m, *a) ⇒ Boolean
53 54 55 |
# File 'lib/mail_provider/checker.rb', line 53 def respond_to_missing?(m, *a) @free.respond_to?(m, *a) || super end |
#setup(refresh: false) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/mail_provider/checker.rb', line 9 def setup(refresh: false) @manager.run(refresh: refresh) load_tries self rescue TrieLoadError raise if refresh setup refresh: true end |